前言
我们可以通过将ConfigMap以Volume的形式Mount到Pod内,然后通过动态更新 ConfigMap,让Pod 热加载 修改过后的配置文件,达到动态配置的目的。但是需要注意的是:ConfigMap默认会以目录的形式挂载进Pod内,这种情况下,ConfigMap更新后,K8S 会自动将新的配置同步进Pod内,但是如果通过SubPath将ConfigMap以单个文件的形式挂载进Pod内,却不会出现同步更新的情况。
参见:Configure a Pod to Use a ConfigMap
针对这个情况,我们可以做如下测试:
探索
- 准备cm-test.yml文件,配置如下
apiVersion: v1
kind: ConfigMap
metadata:
name: config-map
namespace: default
data:
config-dir.yml: |+
this config mount by dir!
config-file.yml: |+
this config mount by file!