我有一个使用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
答案 0 :(得分:4)
当您将ConfigMap中的密钥作为环境变量挂载时,您需要重新启动窗格以使更改生效。
将其作为卷安装到系统中时,卷中的文件将自动更新。更新不是立即的,在检查更改/更新之前,kubelet
中配置了一些TTL。但它通常很快。但是,它仍将取决于您的应用程序如何从文件加载数据 - 当文件更改时是否能够动态更新其自身 <或者这些数据是否仅在启动时加载一次