通用工具
kubectl
kubectl 是 Kubernetes 的命令行工具,它允许你与集群进行交互,并且可以用于管理和操作 Kubernetes 资源。你可以使用 kubectl apply 命令来应用清单文件,并使用 kubectl delete 命令删除资源。 kubectl 还提供了许多其他命令,如 kubectl get、kubectl describe 等,用于检查和管理集群中的资源。
Helm
Helm 是 Kubernetes 的包管理工具,它使用称为 Charts 的打包文件来组织和部署 Kubernetes 资源。Chart 是一个预定义的目录结构,包含了一个或多个 Kubernetes 资源文件,以及一个 values.yaml 文件用于配置。Helm 提供了 helm install 和 helm upgrade 等命令,用于在集群中部署和更新应用程序。
Kustomize
Kustomize 是一个 Kubernetes 原生的配置管理工具,它允许你通过对原始清单文件应用“变换”来生成最终的清单。Kustomize 使用 kustomization.yaml 文件来描述要应用的变换和配置。它提供了一种在不修改原始清单文件的情况下定制和组合资源的方式。
Jsonnet
Jsonnet 是一种数据编程语言,它允许你使用 JSON 的语法来生成 Kubernetes 清单。Jsonnet 具有模块化和复用的特性,允许你定义可重用的代码块。Jsonnet 配合工具如 jb(Jsonnet Bundler)和 jsonnetfmt 可以用于管理和组织清单文件。
Kubeapply
Kubeapply 是一个基于 GitOps 的工具,它使用 Git 存储库来管理和部署 Kubernetes 清单文件。Kubeapply 支持将多个清单文件组织为应用程序,并提供了强大的变量替换和版本控制的功能。
Skaffold
Skaffold 是一个用于 Kubernetes 应用程序的开发工具,它支持本地开发、构建、推送和部署的工作流。Skaffold 通过定义 skaffold.yaml 文件来配置项目,使得开发者可以轻松地管理应用程序的部署和调试。