微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果图表值发生变化,Helm 升级会滚动重启 Pod

如何解决如果图表值发生变化,Helm 升级会滚动重启 Pod

我有一个简单的 Helm 图表,其中包含一个 Deployment 和一个 ConfigMap。 ConfigMap 如下所示:

apiVersion: v1
kind: ConfigMap
Metadata:
  name: {{ .Values.APP_NAMESPACE }}-config
data:
  LOGGED_OUT_MSG: "{{ .Values.LOGGED_OUT_MSG }}"

ConfigMap 作为 envfrom 挂载在 Pod 模板中:

...
envFrom:
  - configMapRef:
      name: {{ .Values.APP_NAMESPACE }}-config

对于我的一个非生产环境,我有文件 override.yaml

# override.yaml
LOGGED_OUT_MSG: "You are logged out (DEV)"

然后我像这样进行 Helm 升级

$ helm upgrade -f override.yaml mychart .

我假设会发生的是,如果我对 override.yaml 进行更改并运行上面的 helm upgrade 命令,Helm 会注意到 LOGGED_OUT_MSG 的值已更改并执行滚动重新启动我的 Pod。然而,这不会发生。相反,我必须手动删除 Pod 以便更改生效。

有没有办法运行 helm upgrade 以便 override.yaml 中的更改触发 Helm 滚动重启 Pod?

解决方法

默认情况下无法做到这一点 AFAIK。 您正在寻找 stakater 的 reloader。 “Reloader 可以观察 ConfigMap 和 Secret 中的变化,并对 Pod 及其相关的 DeploymentConfig、Deployment、Daemonset 和 Statefulset 进行滚动升级。”

这将需要在您的集群中安装该工具并向您的部署添加注释。

https://github.com/stakater/Reloader

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。