Helm 根据 chart、值和模板,从中渲染出带版本的 Kubernetes 清单。Helm 在集群中记录发布元数据,而 Kubernetes 只协调最终生成的资源;Kubernetes 不理解也不维护 Helm 模板。
Helm 发布 #
将默认值保存在 values.yaml 中,仅在必要时使用特定环境的值文件或显式的 --set 值,并在应用前验证渲染结果:
sh
helm lint charts/orders
helm template orders charts/orders -f values-production.yaml
helm upgrade --install orders charts/orders -f values-production.yaml --namespace orders --create-namespace --atomic--atomic 会在 Helm 能够判断升级失败时回滚失败的升级,但不会使外部管理的状态具备事务性。应明确定义钩子、CRD、数据库迁移和回滚行为。
Argo CD 协调 #
Argo CD 监视声明的 Git 修订版本,并使渲染后的期望状态与集群状态保持一致。Argo CD 中的 Helm 源负责提供 chart 渲染;对于由 GitOps 管理的应用,应由 Argo CD 而不是操作员本地的 Helm 客户端负责协调。
当访问控制和发布节奏不同时,应为应用源代码和部署配置使用不同的仓库或目录。限制 Argo CD 项目、仓库、目标集群和服务账户的权限。在启用自动修剪前检查漂移,因为修剪会删除期望清单集合中不存在的资源。
评论
在 GitHub 上阅读或评论(发表评论需要登录)