configmap 热更新

更新应用配置且不重启应用程序

使用环境变量或者命令行参数作为配置源的弊端在于无法在进程运行时更新配置。将configmap 暴露为卷可以达到配置热更新的效果,无须重新创建pod或者重启容器

了解更新configmap的影响

容器的一个比较重要的特性是其不变性,从同一镜像启动的多个容器之间不存在任何差异,那么修改被运行的容器所使用的configmap来打破这种不变性的行为是否是错误的?

关键在于应用是否支持重载配置,configmap更新之后创建的pod也会使用新配置,而之前的pod依旧使用旧配置,这会导致运行中的不同实例的配置的不同,这不仅限于新pod,

如果pod中的容器因为某种原因重启了,新进程同样会使用新配置,因此,应用不支持主动重载配置,那么修改某些运行pod所使用的configmap并不是一个好主意

如果应用支持主动重载配置,那么修改configmap的行为就算不了什么。不过,不同的pod同步时间可能长达一分钟