kubernetes

kubeconfig管理の俺的プラクティス

前提

複数クラウドのkubernetesを利用する場合、 認証情報等が個々のymlファイルに別れてしまうため、
kubectlコマンドを使う場合には kubeconfigファイルを指定してコマンド打つという方法が1つ。

kubectl get pod --context=hoge_context --kubeconfig=/Users/dev44nobu/.kube/hoge.yml 
kubectl get pod --context=foo_context --kubeconfig=/Users/dev44nobu/.kube/foo.yml

(☝︎ ՞ਊ ՞)☝︎ < めんどくセー

俺的プラクティス

環境変数KUBECONFIG に複数ファイルのパス通してやると勝手にマージされるらしいので、
適当なディレクトリにymlファイルをまとめて格納、.bash_profile等で以下のコマンドを実行してやるのがジャスティスな気がする。

export KUBECONFIG="$KUBECONFIG:`ls $HOME/.kube/*.yml | tr '\n' ':'`"

これでkubectlコマンド利用時に冗長なconfigファイルの指定することから解放されます(°▽°)

kubectl get pod --context=hoge_context
kubectl get pod --context=foo_context 

追記1

stern を利用している場合は、 以下のPRが取り込まれている 1.6.0を利用しないとエラーになります

https://github.com/wercker/stern/pull/58

参考リンク

https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/#append-homekubeconfig-to-your-kubeconfig-environment-variable