tanzu
CLI コマンドを使って、特定の Tanzu Kubernetes クラスタにアクセスするための kubeconfig ファイルを取得するコマンドです。
TL;DR
下記のコマンドを実行することで、カレントディレクトリに kubeconfig ファイルをエクスポートすることができます。
フォーマット:
tanzu cluster kubeconfig get CLUSTER_NAME --export-file ./kubeconfig [--admin]
実行例:
$ tanzu cluster kubeconfig get tkc01 --export-file ./kubeconfig --admin
Credentials of cluster 'tkc01' have been saved
You can now access the cluster by running 'kubectl config use-context tkc01-admin@tkc01' under path './kubeconfig'
解説
前提
利用しているは、Tanzu Kubernetes Grid 1.6 であり、下記のドキュメントに従って、tanzu
CLI コマンドがインストールされていること。
そして、kubeconfig をエクスポート (取得) したい Tanzu Kubernetes クラスタがデプロイ済みであること。
$ tanzu cluster list
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
tkc01 default running 1/1 3/3 v1.23.8+vmware.2 <none> dev v1.23.8---vmware.2-tkg.1
指定オプション
特にオプションを指定せずに、下記のようにコマンドを実行すると、kubecofing のデフォルトの配置先 $HOME/.kube/config
に対して、kubeconfig の情報が "追記" され、また Tanzu Kubernetes クラスタに対して、非 Admin 権限でのアクセス権しか取得できません。
# 情報の格納先は、デフォルトの $HOME/.kube/config
tanzu cluster kubeconfig get tkc01
そのため、もし、Tanzu Kubernetes クラスタ (Workload クラスタ) のユーザーのために、kubeconfig を配布したい場合、$HOME/.kube/config
には、Management クラスタの kubeconfig の Admin 権限の内容も含まれてしまうため、そのまま渡すのには適しません。
そこで、--export-file
オプションを指定して、出力する先を指定しています。
--admin
については、名前の通り、Admin 権限のある kubeconfig にするか否かのオプションですので、渡したいシーンに合わせて指定します。
ファイルの使い道
エクスポートしたファイルは、Tanzu Kubernetes クラスタのユーザーに渡し、そのユーザーの $HOME/.kube/config
として格納して貰えれば、ユーザーは kubectl
コマンドを使って、Tanzu Kubernetes クラスタにアクセスすることができます。
ちなみに... Tanzu Mission Control (TMC) で Tanzu Kubernetes クラスタを管理している場合、TMC の UI から kubeconfig はダウンロードできるので、セルフサービス化もできて、とても便利ですよ! (ちゃっかり宣伝)
参考
Tanzu Kubernetes Grid の公式ドキュメントにも、解説がありますので、より詳細な情報については、こちらをご参照ください。