helm实现更新cm和secret后自动更新pod引用
helm实现更新cm和secret后自动更新pod
在kubernetes中,更新configMap后,pod是不会自动识别configMap和secret中的变动。
configMap和secret更新后,如果想使pod中引用configMap和secret的变量生效,通常简单的做法是:
- 方法1. 手动删除该pod,让其自动产生一份新的pod.
- 方法2. 修改pod中的spec配置,让其自动产生一份新的pod.
- 方法3. 增加一个sidecar,让其监控configMap的变化,来重启pod.
Reloader
Reloader[3]
是一个监视 ConfigMap/Secret
更改并对其关联的 Deployment、Daemonset、StatefulSet、DeploymentConfig
进行滚动更新的开源项目。
Reloader的使用方法比较简单,首先部署 Reloader 控制器:
1 | kubectl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml |
然后,给想要滚动更新配置的应用加上 reloader 注解即可:
1 | kind: Deployment |
checksum 注解热更新
checksum 注解是 Helm Charts 中最常用的滚动更新方法,即在 Deployment 的 annotations 中加上 Secret 或者 ConfigMap 的 sha256sum,这样已有的 Pod 就会随着 Secret 或者 ConfigMap 的变更而更新。
1 | kind: Deployment |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mr.Pu 个站博客!
评论