写点什么

helm 自动滚动部署

作者:ghostwritten
  • 2022 年 5 月 10 日
  • 本文字数:607 字

    阅读完需:约 2 分钟

helm 自动滚动部署

通常 ConfigMapsSecrets 作为配置文件注入到容器中,或者有其他需要滚动 pod 的外部依赖项更改。根据应用程序的不同,如果使用后续 helm upgrade 的 .


如果另一个文件发生更改,该sha256sum函数可用于确保更新部署的注释部分:


kind: Deploymentspec:  template:    metadata:      annotations:        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}[...]
复制代码


注意:如果您将此添加到库图表中,您将无法访问$.Template.BasePath. 相反,您可以使用{{ include ("mylibchart.configmap") . | sha256sum }}.


如果您总是想滚动部署,您可以使用与上面类似的注释步骤,而不是用随机字符串替换,这样它总是会更改并导致部署滚动:


kind: Deploymentspec:  template:    metadata:      annotations:        rollme: {{ randAlphaNum 5 | quote }}[...]
复制代码


模板函数的每次调用都会生成一个唯一的随机字符串。这意味着如果需要同步多个资源使用的随机字符串,所有相关资源都需要在同一个模板文件中。


这两种方法都允许您的部署利用内置的更新策略逻辑来避免停机。


注意:

  1. 过去我们建议使用--recreate-pods标志作为另一个选项。该标志在 Helm 3 中被标记为已弃用,以支持上述更具声明性的方法。

  2. Helm 中有一些函数允许您生成随机数据、加密密钥等。这些很好用。但请注意,在升级期间,模板会重新执行。当模板运行生成与上次运行不同的数据时,将触发该资源的更新。

发布于: 刚刚阅读数: 2
用户头像

ghostwritten

关注

还未添加个人签名 2018.11.14 加入

还未添加个人简介

评论

发布
暂无评论
helm 自动滚动部署_Kubernetes_ghostwritten_InfoQ写作社区