【Kubernetes】Kubernetesで設定している環境変数の調べ方

はじめに

Kubernetes(以下、k8s)の環境変数etcd という仕組みで管理されています。 etcd は分散KVS(Key Value System)で、1つ設定すれば他のPodでも 同じように環境変数を読むことができます。

etcd 単体で機能として確立されているようですが 今回はk8s上での設定情報の調べ方と値の取得方法を書きます。

前提条件

kubectl コマンドでk8sの設定情報が見れること

# 例
kubectl get pods

やり方

設定情報を一覧で確認したい

kubectl get sercrets

1つの設定情報の内容をすべて確認したい

# 例:SidekiqのBasic認証のusername, passwordを確認する
kubectl get secret user_password -o yaml

以下のような感じで出てきます。 ※パスワードなどは置き換えています。

apiVersion: v1
data:
  user: XXXXXXX
  password: XXXXXXX
kind: Secret
metadata:
  creationTimestamp: 2018-06-26T07:57:55Z
  name: basic-auth
  namespace: default
  resourceVersion: "999999"
  selfLink: /api/v1/namespaces/default/secrets/basic-auth
  uid: 99999999-411f-11e7-bbea-XXXXXXXXXXXXX
type: Opaque

base64 というもので暗号化しているためデコードします。

echo "XXXXX" | base64 --decode

Rubyでやる場合

require 'base64'
Base64.decode64("XXXXX")

まとめ

k8s上でサクッと確認する分にはこれでいい感じです。