Concepts - configuration - configmaps
configmap(cm) 是 k8s 提供存放非敏感訊息的地方
他實際存放於 k8s 的 etcd 中, 每個 cm 最大 size 為 1MB
因此超過此 size 的請考慮使用 volume
configmap 能夠設定到 container 的 environments / command-line arguments / file
comfigmap sample
configmap 使用 key-value 來設定
key 允許使用 [a-z-_.]
value 一律為 string, 支援 multi-line
範例
|
|
pod
|
|
.spec.volumes
將 configmap 中的 game.properties
,user-interface.properties
以 file 方式變成一個可掛載的 volume
contianer 再去 mount 這個 volume
要注意 volume 是唯讀
spec.containers[0].env
將 configmap 以 environment 提供給 pod
在 command 的地方就可以使用 env 當作參數
要注意 k8s manifest 要使用 env 是使用 $()
非 ${}
在上面的例子 volume 跟 env 都是拿部份 configmap
也可以直接拿全部 configmap 內容
|
|
注意事項
ConfigMaps auto update
如果是用 volume, 更新 configmap, pod 會直接更新內容
但如果是用 env 的話, pod 一定要重起才會更新
access range
pod 要使用 configmap 務必要在同個 namespace 之下
以上就是 k8s 的 configmap
因為設定直接存在 k8s 中, 並可以直接 mount 給 pod
不必考慮 node 在何處 因此非常實用