如果我在部署后更改我的ConfigMap键值,是否需要重新启动使用configMap值的应用程序的部署?

时间:2018-06-01 09:02:08

标签: kubernetes

我有一个使用envVar环境变量的示例nodejs应用程序,我已经在kubernetes集群上部署了它。我通过配置映射传递env变量。

一旦部署,当pods全部运行时,如果我用新值更改配置图。在此之后是否需要重新部署我的nodejs应用程序?

configmap.yaml

kind: ConfigMap
apiVersion: v1
metadata:
  name: app1-config
  namespace: default
data:
  envVal: '12345' # initial value
  apiUrl: http://a4235a7ee247011e8aa6f0213eb6eb14-1392003683.us-west-2.elb.amazonaws.com/myapp4

更新configmap.yaml

configmap.yaml

kind: ConfigMap
apiVersion: v1
metadata:
  name: app1-config
  namespace: default
data:
  envVal: '56789' # changed value
  apiUrl: http://a4235a7ee247011e8aa6f0213eb6eb14-1392003683.us-west-2.elb.amazonaws.com/myapp4

1 个答案:

答案 0 :(得分:4)

当您将ConfigMap中的密钥作为环境变量挂载时,您需要重新启动窗格以使更改生效。

将其作为卷安装到系统中时,卷中的文件将自动更新。更新不是立即的,在检查更改/更新之前,kubelet中配置了一些TTL。但它通常很快。但是,它仍将取决于您的应用程序如何从文件加载数据 - 当文件更改时是否能够动态更新其自身 <或者这些数据是否仅在启动时加载一次