答えが非常に堅実で有益なものになる前に、ここに 2 セント追加してみます。
kubeconfig
優先順位を認識してファイルを構成する
を使用している場合、使用するkubeconfigファイルkubectl
を決定する際に有効になる設定は次のとおりです。
--kubeconfig
指定されている場合はフラグを使用
KUBECONFIG
指定されている場合は、環境変数を使用します
$HOME/.kube/config
ファイルを使用
これにより、コマンドごとに使用するkubeconfigファイルを簡単にオーバーライドできます。kubectl
#
# using --kubeconfig flag
#
kubectl get pods --kubeconfig=file1
kubectl get pods --kubeconfig=file2
#
# or
# using `KUBECONFIG` environment variable
#
KUBECONFIG=file1 kubectl get pods
KUBECONFIG=file2 kubectl get pods
#
# or
# merging your kubeconfig file w/ $HOME/.kube/config (w/ cp backup)
#
cp $HOME/.kube/config $HOME/.kube/config.backup.$(date +%Y-%m-%d.%H:%M:%S)
KUBECONFIG= $HOME/.kube/config:file2:file3 kubectl config view --merge --flatten > \
~/.kube/merged_kubeconfig && mv ~/.kube/merged_kubeconfig ~/.kube/config
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2
注:--minify
フラグを使用すると、そのコンテキストに関する情報のみを抽出でき、フラグ--flatten
を使用すると、資格情報を編集せずに保持できます。
あなたの例では
kubectl get pods --kubeconfig=/path/to/admin.conf
#
# or:
#
KUBECONFIG=/path/to/admin.conf kubectl get pods
#
# or:
#
cp $HOME/.kube/config $HOME/.kube/config.backup.$(date)
KUBECONFIG= $HOME/.kube/config:/path/to/admin.conf kubectl config view --merge --flatten > \
~/.kube/merged_kubeconfig && mv ~/.kube/merged_kubeconfig ~/.kube/config
kubectl get pods --context=cluster-1
kubectl get pods --context=cluster-2
この優先順位リストはドキュメントで正式に指定されていませんが、ここで体系化されています。Kubernetes 用のクライアント ツールを開発している場合は、プログラムに標準のフラグと検出をもたらすcli-runtimeライブラリの使用を検討する必要があります。--kubeconfig
$KUBECONFIG
参照記事: https://ahmet.im/blog/mastering-kubeconfig/