Kubernetes Pod に環境変数がうまく注入できているか試す際の YAML ファイル

Kubernetes 上の Pod (コンテナ) に対して環境変数を注入する、お試し Deployment を作ってみた。

ConfigMap や Secret を注入する valueFromconfigMapKeyRefsecretKeyRef の書き方が毎回よく分からなくなるのと、「どんな Key Value を定義したっけ?」とかいうのを忘れがちなので、実際に Pod に注入して確認したらええやん、ということで。

生の Alpine イメージを使って、while true コマンドで定期的に環境変数を標準出力するようにしてみた。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-alpine-deployment-1
spec:
  selector:
    matchLabels:
      app: my-alpine-label-1
  replicas: 1
  template:
    metadata:
      labels:
        app: my-alpine-label-1
    spec:
      containers:
        - name: my-alpine-container-1
          image: alpine:3.2
          command:
            - /bin/sh
            - '-c'
            - 'echo "START : $(MY_ENV_NAME)" && while true; do echo "LOOP : $(MY_ENV_NAME)"; sleep 1m; done'
          # 以下に環境変数を注入する定義を書く
          env:
            - name : MY_ENV_NAME
              value: 'my env value'

こんな deployment.yaml を作ったら

$ kubectl apply -f deployment.yaml

で流し込み、

$ kubectl get pods

で Pod 名を確認し、

$ kubectl logs my-alpine-deployment-1-XXXXX

# もしくは

$ k8stail

あたりで Pod が出力するログを確認してみれば、環境変数が正しく注入できているか確認できるだろう。