k8s/archive_2

Configmap、Secret

YOOANT 2026. 4. 15. 14:53

■Configmap、Secret

ConfigMapおよびSecretは、アプリケーションの設定値をコンテナ外部で管理するためのリソースである。
ConfigMapは一般的な設定情報を扱い、SecretはパスワードやAPIキーなどの機密情報を安全に管理することを目的とする。

■ 特徴

・ConfigMap

  • data セクションにおいて、key-value形式で設定値を定義する。
  • インフラ環境(dev / stg / prod 等)に応じて、異なる設定値の注入が可能である。
  • アプリケーションの機能制御を目的とした設定パラメータを管理する。
  • 環境変数またはファイル形式で、外部設定をアプリケーションへ注入することができる。

・Secret

  • data セクションにおいて、key-value形式で機密情報を定義する。
  • 設定値はBase64形式でエンコードして管理される。
  • 認証情報や機密データを安全に取り扱うことを目的とする。
  • 環境変数またはファイル形式で、機密情報をアプリケーションへ注入することができる。
  • アクセス制御(RBAC)や暗号化設定の適用が推奨される。

■ 補足(差異)

  • ConfigMap:非機密情報の管理に使用する。
  • Secret:機密情報の管理に使用する。

■ 動作確認

1.ConfigMap、Secretの確認

// Configmap確認
# kubectl describe -n anotherclass-123 configmaps api-tester-1231-properties
# kubectl get -n anotherclass-123 configmaps api-tester-1231-properties -o yaml
# kubectl get -n anotherclass-123 configmaps api-tester-1231-properties -o jsonpath='{.data}'
// Secret確認
# kubectl get -n anotherclass-123 secret api-tester-1231-postgresql -o yaml
# kubectl get -n anotherclass-123 secret api-tester-1231-postgresql -o jsonpath='{.data}'
// Secretのdataセクションにおいて、postgresql-infoをキーとする値のみを取得する
# kubectl get -n anotherclass-123 secret api-tester-1231-postgresql -o jsonpath='{.data.postgresql-info\.yaml}'
// Secretのdataセクションにおいて、postgresql-infoをキーとする値をBase64デコードして参照する
# kubectl get -n anotherclass-123 secret api-tester-1231-postgresql -o jsonpath='{.data.postgresql-info\.yaml}' | base64 -d

 

2.コンテナ内部の環境変数の確認

// コンテナ内部に入る(k8sのDashboardでも確認可)
# k exec -it -n anotherclass-123 <pod-name> -- /bin/bash
// ConfigMapの環境変数を確認
# env

// Secretファイルを確認
# ls /usr/src/myapp/datasource
# cat /usr/src/myapp/datasource/postgresql-info.yaml

// Javaの実行引数を確認
# jps -v
// コンテナ内部に入らずに実行するコマンド
# kubectl exec -n <namespace-name> -it <pod-name> -- <command>

# kubectl exec -n anotherclass-123 -it <pod-name> -- env
# kubectl exec -n anotherclass-123 -it <pod-name> -- cat /usr/src/myapp/datasource/postgresql-info.yaml
# kubectl exec -n anotherclass-123 -it <pod-name> -- jps -v

 

✅考慮事項

環境変数として注入するか、ボリュームとして接続するかによって、アプリの値がリアルタイムで反映されるかどうかが決まる。

'k8s > archive_2' 카테고리의 다른 글

Probe,Service,Secret,HPA  (0) 2026.04.18
PV/PVC、Deployment、Service  (0) 2026.04.16
Probe  (0) 2026.04.15
オブジェクトの理解  (0) 2026.04.13
Kubernetesの利便性  (0) 2026.04.13

日本語