ConfigMap中设置的环境变量的动态更改

时间:2019-04-17 11:51:30

标签: dynamic kubernetes environment-variables volumes configmap

我已经从Configmap中为容器定义了一个环境变量,但是我想在ConfigMap中更改变量值时自动应用更改。 也许我们可以在卷路径中指定环境变量!?

2 个答案:

答案 0 :(得分:0)

关于配置映射更改的传播已讨论了很长时间,但尚未实现:https://github.com/kubernetes/kubernetes/issues/22368

我建议使用helm upgrade process(或类似名称)仅使用新设置推出相同版本的应用程序。这样,您就可以拥有其他控件:可以进行滚动更新,可以回滚,可以执行canary等。

答案 1 :(得分:0)

在接下来的几行中,我将尝试展示一个想法(至少暂时可以将其视为解决方案),它包括将configmap值安装为Volume,

spec:
  containers:
  - name
    ...
    volumeMounts:
      - name: config-volume
        mountPath: /etc/config   #just an example
  volumes:
    - name: config-volume
      configMap:
        name : <name-of-configmap>
        items:
          - key: <key-in-onfigmap>
            path: keys

结果是,我们将在卷文件(/ etc / config / keys)中获得configMap Key的值,可以通过执行这些命令来确保

kubectl exec -it <name-of-pod> sh      #to get a shell to the running container/pod
cat /etc/config/keys                   #

注意:从更新ConfigMap到将键投影到吊舱之间有一个延迟时间(可以是kubelet ConfigMap同步时间+ kubelet中ConfigMap缓存的ttl的时间)

请注意this,以使其更加清晰,最诚挚的问候