Kubernetesでは、kubectl
コマンドラインツールを使用して、デプロイメントに環境変数を設定したり、既存の環境変数を削除したりすることが可能です。
本稿ではkubectl set env
を使ってデプロイメントの環境変数を操作する方法を紹介します。
1. デプロイメントの作成
まず、検証用にサンプルとしてnginxのデプロイメントを作成します。
kubectl create deployment nginx-deployment --image=nginx
このコマンドは、nginx
イメージを使用して nginx-deployment
という名前のデプロイメントを作成します。
2. 環境変数の設定
次に、デプロイメントに環境変数を設定します。
kubectl set env deployment/nginx-deployment FOO=1 BAR=2
この操作により、FOO
と BAR
という2つの環境変数がそれぞれ値 1
と 2
で設定されます。
3. 環境変数の一覧表示
設定された環境変数を一覧表示して、設定が正しく行われたことを確認します。これもset env
ででき、--list
オプションを伴わせます。(set
なのにget
できるところが直感と反しますが、一応これが表示機能となっています)
kubectl set env deployment/nginx-deployment --list
# Deployment nginx-deployment, container nginx
FOO=1
BAR=2
4. 環境変数の削除
不要になった環境変数を削除します。以下の例では、FOO
変数を削除しています。
kubectl set env deployment/nginx-deployment FOO-
よく見てほしいのですが、環境変数名の後ろにマイナス-
がついています。これが削除するという意味になります。
削除後、環境変数を再度一覧表示して、削除が反映されていることを確認します。
kubectl set env deployment/nginx-deployment --list
# Deployment nginx-deployment, container nginx
BAR=2
5. デプロイメントの削除
最後に、検証用に作成したデプロイメントを削除します。
kubectl delete deployment nginx-deployment
注意点
ここで紹介した方法は、spec.template.spec.containers[].env
の内容を操作するものであり、envFrom
を使用して設定された環境変数には影響を与えません。envFrom
は、環境変数をコンフィグマップやシークレットから一括で設定するための機能です。