Kubernetes ConfigMaps的一致性保证?

时间:2020-01-28 17:30:45

标签: kubernetes configmap

试图确定一些重要的分片配置的存储位置,但我还没有找到足够的关于Kube ConfigMaps可靠性的文档来减轻烦恼。

说我有一个单集群kube pod规范,该规范在pod开始时(使用configMapKeyRef注入一个具有configmap条目值的环境变量。我有很多基于此规范运行的Pod。

  1. kubectl edit configmap条目,然后等待操作成功。
  2. 我重新启动广告连播。

这些Pod是否保证可以看到新的configmap值? (或者,如果失败,我是否需要等待一段时间才能重新启动Pod以确保它们获得新值?)

类似地,假设所有Pod在重新启动期间都没有对configmap进行编辑,是否可以保证它们具有一致的值?

1 个答案:

答案 0 :(得分:3)

Kubernetes是最终的一致性系统。要更改值,recommended创建新的ConfigMap

在群集中更改实时configMap所保存的数据被认为是不好的做法。部署无法知道它们所引用的configMap已经更改,因此此类更新无效。

使用Declarative config management with Kustomize,使用configMapGenerator更容易做到

更改部署配置的推荐方法是

  1. 使用新名称创建新的configMap,
  2. 修补部署,修改相应的configMapKeyRef字段的名称值。

部署

当使用 configMapGenerator 将Kustomize同时用于DeploymentConfigMap时,ConfigMap的名称将根据内容和对{{ ConfigMap中的1}}将使用生成的名称进行更新,以便触发新的滚动部署

相关问题