【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

参考

Support

\ この記事が役に立ったと思ったら、サポートお願いします! /

buy me a coffee
Share

Profile

author

Masa

都内のIT企業で働くエンジニア
自分が学んだことをブログでわかりやすく発信していきながらスキルアップを目指していきます!

buy me a coffee