- クラウド技術
KubernetesのConfigMap設定について
- #Kubernetes
目次
目的
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
DB接続情報などを記載した設定ファイルは開発者全員に見せる必要がないという場合に、
ConfigMapを使用して、ソース管理とは別で必要最低限の人だけが見れるように設定します。
前提
・kubernetesが作成済みであること
・kubectlコマンドが実行可能であること
ConfigMapのyamlファイル作成
ConfigMapのyamlファイルを作成する。
ConfigMapには単一の値もしくは
Configurationファイルのような値を設定できる。
作成ファイル:game-config.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: ConfigMap metadata: name: game-config data: # プロパティーに似たキー。各キーは単純な値にマッピングされている player_initial_lives: "3" ui_properties_file_name: "user-interface.properties" # ファイルに似たキー game.properties: | enemy.types=aliens,monsters player.maximum-lives=5 user-interface.properties: | color.good=purple color.bad=yellow allow.textmode=true |
作成したConfigMapファイルをkubectlコマンドでデプロイする。
1kubectl apply -f game-config.yaml
デプロイされたconfigmapを確認する
以下のコマンドで登録内容を確認する。
1 |
1kubectl get configmap game-config |
yaml形式で内容を見たい場合は以下のコマンドを実行する
1 |
1kubectl get configmap game-config -o yaml |
上記で作成したConfigMapを参照するPodを作成する。
作成ファイル:pod-demo.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
apiVersion: v1 kind: Pod metadata: name: configmap-demo-pod spec: containers: - name: demo image: alpine command: ["sleep", "3600"] env: # 環境変数を定義します。 - name: PLAYER_INITIAL_LIVES # ここではConfigMap内のキーの名前とは違い # 大文字が使われていることに着目してください。 valueFrom: configMapKeyRef: name: game-config # この値を取得するConfigMap。 key: player_initial_lives # 取得するキー。 - name: UI_PROPERTIES_FILE_NAME valueFrom: configMapKeyRef: name: game-config key: ui_properties_file_name volumeMounts: - name: config mountPath: "/config" readOnly: true volumes: # Podレベルでボリュームを設定し、Pod内のコンテナにマウントします。 - name: config configMap: # マウントしたいConfigMapの名前を指定します。 name: game-config # ファイルとして作成するConfigMapのキーの配列 items: - key: "game.properties" path: "game.properties" - key: "user-interface.properties" path: "user-interface.properties" |
作成したPodに入りマウントしたConfigMapの情報を確認する。
以下のコマンドで対象Podを確認する。
以下のコマンドでPodに入る
1 |
1kubectl exec -it configmap-demo-pod /bin/sh |
環境変数に登録した内容を確認する。
以下のコマンドを実行する
以下のコマンドを実行する
1 |
1printenv UI_PROPERTIES_FILE_NAME |
Configurationファイル形式でマウントしたファイルを確認する
ファイルがマウントされているか確認する
1 |
1ls -l /config |
ファイルの中身を確認する
1 |
1cat /config/game.properties |
ファイルの中身を確認する
1 |
1cat /config/game.properties |
ぜひ参考にしてみてください!
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>