【问题标题】:Dynamic changes of environment variable setted in ConfigMapConfigMap 中设置的环境变量动态变化
【发布时间】:2019-09-07 15:58:39
【问题描述】:

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

【问题讨论】:

    标签: dynamic kubernetes environment-variables volumes configmap


    【解决方案1】:

    在以下几行中,我将尝试展示一个想法(它可以被视为解决方案,至少目前是这样),它包括将 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 更新到 key 投射到 pod 之间有一个延迟时间(可以是 kubelet ConfigMap 同步周期 + kubelet 中 ConfigMap 缓存的 ttl 时间)

    看一下this,让它更清楚,最好的问候

    【讨论】:

      【解决方案2】:

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

      我建议使用helm upgrade process(或类似的)来推出具有新设置的相同版本的应用程序。这样你就有了额外的控制:你可以做滚动更新,你可以回滚,你可以做金丝雀等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-25
        • 1970-01-01
        • 2019-10-28
        • 2016-08-07
        • 2018-12-04
        • 2014-12-17
        相关资源
        最近更新 更多