次のコマンドが正常に機能するように、クラスターに関する情報を含むadmin.confファイルがあります。
kubectl --kubeconfig ./admin.conf get nodes
config
kubectlを使用して、このファイルのクラスター、ユーザー、および認証を1つのコマンドのデフォルトとして使用するにはどうすればよいですか? set-cluster、set-credentials、set-context、use-contextなどが個別に表示されるだけです。単純に実行すると同じ出力が得られます。
kubectl get nodes
Kubectlの構成方法に関する公式ドキュメントは次のとおりです。
http://kubernetes.io/docs/user-guide/kubeconfig-file/
いくつかのオプションがあります。特にこの質問に対しては、admin.conf
を~/.kube/config
にコピーするだけです。
私はちょうど.bashrcを介してkubectlコマンドを開発環境と本番環境用に別々のものにエイリアスします
alias k8='kubectl'
alias k8prd='kubectl --kubeconfig ~/.kube/config_prd.conf'
環境変数を使用すると、間違った環境でコマンドを実行する可能性があるのに対して、各メソッドの環境を定義する必要があるため、この方法を好みます。
私が見つけた最良の方法は、環境変数を使用することでした:
export KUBECONFIG=/path/to/admin.conf
すべてのクラスター構成に.kubeconfig
という名前を付けます。これはプロジェクトディレクトリにあります。
次に、.bashrc
または.bash_profile
に次のエクスポートがあります。
export KUBECONFIG=.kubeconfig:$HOME/.kube/config
この方法でプロジェクトディレクトリにいるとき、kubectl
はローカル.kubeconfig
をロードします。役立つことを願っています
kubectl
は、デフォルトの構成ファイルとして~/.kube/config
を使用します。そのため、admin.conf
をコピーするだけです。
回答が非常に堅実で有益なものになる前に、ここに2セントを追加しようとします。
kubeconfig
ファイルを構成するkubectl
を使用している場合、使用するkubeconfigファイルを決定する際に有効になる設定は次のとおりです。
--kubeconfig
フラグを使用しますKUBECONFIG
環境変数を使用します$HOME/.kube/config
ファイルを使用これにより、kubectl
コマンドで使用するkubeconfigファイルを簡単にオーバーライドできます。
#
# 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用のクライアントツールを開発している場合は、プログラムに標準の--kubeconfig
フラグと$KUBECONFIG
検出をもたらす cli-runtime ライブラリの使用を検討する必要があります。
ref article:https://ahmet.im/blog/mastering-kubeconfig/