首页 > Web开发 > 详细

Kubernetes ConfigMap热更新

时间:2020-06-10 12:30:04      阅读:56      评论:0      收藏:0      [点我收藏+]

ConfigMap是用来存储配置文件的kubernetes资源对象,所有的配置内容都存储在etcd中.

总结

更新 ConfigMap 后:

  • 使用该 ConfigMap 挂载的 Env 不会同步更新
  • 使用该 ConfigMap 挂载的 Volume 中的数据需要一段时间(实测大概10秒)才能同步更新

ENV 是在容器启动的时候注入的,启动之后 kubernetes 就不会再改变环境变量的值,且同一个 namespace 中的 pod 的环境变量是不断累加的,参考 Kubernetes中的服务发现与docker容器间的环境变量传递源码探究。为了更新容器中使用 ConfigMap 挂载的配置,可以通过滚动更新 pod 的方式来强制重新挂载 ConfigMap,也可以在更新了 ConfigMap 后,先将副本数设置为 0,然后再扩容。


在kubernetes中,更新configMap后,pod是不会自动识别configMap中的变动。

configMap更新后,如果想使pod中引用configMap的变量生效,
通常简单的做法是:
方法1. 删除该pod,让其自动产生一份新的pod.
方法2. 修改pod的配置,让其自动产生一份新的pod.
方法3. 增加一个sidecar,让其监控configMap的变化,来重启pod.

原理就是:通过更新deployment中的Annotations,增加一个version的key,每次需要更新configMap,只要upgrade一次kustomization.yaml中的commonAnnotations->version的值,发布后,pod就会自动重建一次,以此来发现confiMap的新值。

参考网址:https://blog.csdn.net/kozazyh/article/details/89137223

Kubernetes ConfigMap热更新

原文:https://www.cnblogs.com/sanduzxcvbnm/p/13084064.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!