Helm 与 Argo CD

最后更新: 2022-03-08 13:40:19 +0800 +0800
原文以英文撰写。您正在阅读AI翻译版本。

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 上阅读或评论(发表评论需要登录)