【Kubernetes】複数のConfigMapを同じディレクトリにマウントする
2022.08.13
2024.03.24
Kubernetes
ConfigMapPod
はじめに
projectedボリュームを使って、複数のConfigMapを同じディレクトリにマウントする方法を紹介します。
projectedボリューム
projectedボリュームは、複数のボリュームソースを同じディレクトリに配置することができる機能です。
対応しているボリュームソースは下記の通りです。
secret
downwardAPI
configMap
serviceAccountToken
下記のようにprojectedボリュームを使って、複数のConfigMapを1つのボリュームとして定義することで、同じディレクトリにマウントできるようになります。
1 volumes:
2 - name: test-volume
3 projected: # projectedボリューム
4 sources: # CofigMapを列挙
5 - configMap:
6 name: config1
7 - configMap:
8 name: config2
9 - configMap:
10 name: config3
複数のConfigMapを同じディレクトリにマウントしてみる
実際に、試してみます。
ConfigMapの作成
まずはConfigMapを3つ作成します。(config1.yml
, config2.yml
, config3.yml
)それぞれ、テキストファイルを持つConfigMapになっています。
1apiVersion: v1
2kind: ConfigMap
3metadata:
4 name: config1
5data:
6 config1.txt: |-
7 hoge
1apiVersion: v1
2kind: ConfigMap
3metadata:
4 name: config2
5data:
6 config2.txt: |-
7 foo
1apiVersion: v1
2kind: ConfigMap
3metadata:
4 name: config3
5data:
6 config3.txt: |-
7 bar
1kubectl apply -f config1.yml config2.yml config3.yml
Podの作成
次に、projectedボリュームを使って、複数のConfigMapを同じディレクトリにマウントするPod(pod.yml
)を作成します。
1apiVersion: v1
2kind: Pod
3metadata:
4 name: projected-volume-pod
5spec:
6 containers:
7 - name: projected-volume-container
8 image: busybox
9 args:
10 - sleep
11 - "999"
12 volumeMounts:
13 - name: all-in-one
14 mountPath: "/projected-volume"
15 readOnly: true
16 volumes:
17 - name: all-in-one
18 projected: # projectedボリューム
19 sources: # CofigMapを列挙
20 - configMap:
21 name: config1
22 - configMap:
23 name: config2
24 - configMap:
25 name: config3
1kubectl apply -f pod.yml
ボリュームの確認
コンテナにアクセスし、マウントしたディレクトリを確認すると、それぞれのConfigMapで定義していたテキストファイルが配置されていることが確認できます。
1❯ kubectl exec -it projected-volume-pod -- /bin/sh
2
3/ # ls /projected-volume/
4config1.txt config2.txt config3.txt
参考
- Volumes | Kubernetes
- Projected Volumes | Kubernetes
- ストレージにProjectedボリュームを使用するようPodを設定する | Kubernetes
- How can I put multi configmap in the same mount path in kubernetes? - Stack Overflow
Share
関連記事
【Kubernetes】Recreateをやってみる
2022.03.02
【Kubernetes】ConfigMap/SecretでPodの環境変数設定
2022.01.08
【Kubernetes】Podを作成された順で取得する
2022.02.09