Tanzu Mission Control(TMC)の'23/5/16のリリースノートで公開されているが、これまでのtmc
コマンドが非推奨となり'23/11で非サポートとなる。
これに置き換わる形でtanzu
コマンドが代わりのコマンドになるようなので、これを使ってTMCからkubeconfig
を取得してクラスタにアクセスする。
なお、今回は新規にtanzu
コマンドはインストールせず、Management Cluster作成時に使ったtanzu
コマンドを使い回す体で進める。
tanzu
コマンドから導入したい人は公式ドキュメントを参照するか、TMCのUIから手順を確認するとよい。
TMC用プラグインのインストール
tanzu
コマンドを使ってTMC用のコンテキストを作成するとTMC向けのプラグインがインストールされる。なお、プラグインのサイズは個別には測っていないが、~/.local
以下は手元の環境でプラグインのインストール後1.2Gほど利用していたので、空き容量が少ない人は注意すること。
tanzu context create --endpoint my-org.tmc.cloud.vmware.com
--endpoint
で指定するのは、自身が普段アクセスしているTMCのドメインとなる。
tanzu context create
を実行すると従来のtmc login
コマンドと同様にプロンプトが表示されるので、以下を入力する。
-
? Give the context a name
: <コンテキスト名> -
? API Token
: <VMware Cloud ServiceのToken>
VMware Cloud ServiceのTokenの取得方法は過去に書いたこちらの記事で手順を載せているので、分からない人はそちらを参照。
過去にtmc login
を実行したことがある場合は、以下のような感じで掘り出すこともできる。
$ grep refresh_token ~/.vmware-cna-saas/contexts/*
/Users/xxx/.vmware-cna-saas/contexts/xxx-tmc: refresh_token: f_xxxxxx
コマンドが完了すると、コンテキストが追加され、TARGET: mission-control
向けにpluginが追加されていることが分かる。
$ tanzu plugin list
Standalone Plugins
NAME DESCRIPTION TARGET DISCOVERY VERSION STATUS
isolated-cluster isolated-cluster operations default v0.29.0 installed
login Login to the platform default v0.29.0 installed
pinniped-auth Pinniped authentication operations (usually not directly invoked) default v0.29.0 installed
management-cluster Kubernetes management-cluster operations kubernetes default v0.29.0 installed
package Tanzu package management kubernetes default v0.29.0 installed
secret Tanzu secret management kubernetes default v0.29.0 installed
telemetry Configure cluster-wide telemetry settings kubernetes default v0.29.0 installed
Plugins from Context: tmc-test
NAME DESCRIPTION TARGET VERSION STATUS
account Account for tmc resources mission-control v0.0.1 installed
agentartifacts helm for tmc resources mission-control v0.0.1 installed
apply Create/Update a resource with a resource file mission-control v0.0.1 installed
:(省略)
なお、tmc
コマンドは~/.vmware-cna-saas以下
にコンテキストの情報を格納していたが、tanzu
コマンドの場合は~/.config/tanzu/config-ng.yaml
および.config/tanzu/config.yaml
に格納するようだ。Tokenもそこに残るので、忘れた場合はそこから引っ張るとよさそうだ。
登録したコンテキストはtanzu context list
から確認できる。
$ tanzu context list
Target: kubernetes
NAME ISACTIVE ENDPOINT KUBECONFIGPATH KUBECONTEXT
tkg-mgmt-vsphere-20230623044636 true /home/ubuntu/.kube-tkg/config tkg-mgmt-vsphere-20230623044636-admin@tkg-mgmt-vsphere-20230623044636
Target: mission-control
NAME ISACTIVE ENDPOINT
tmc-test true xxxxtanzuxxx.tmc.cloud.vmware.com:443
なお、手元の環境ではcontext登録後に一度tanzu context use <context>
を実行しないとどちらのコンテキストの情報も取得に失敗したため、一度明示的にコンテキストを切り替えておくとよさそう。
TMCをtanzu
コマンドで触る際は、先程のtanzu plugin list
で表示されたTARGET
(mission-control
)を指定する。
例えばMangement Clusterの一覧を取得するには以下のようになる。
$ tanzu mission-control management-cluster list
NAME LABELS
xxxx
yyyy
zzzx
クラスタへのアクセス
準備が整ったので、ここからはtanzu
コマンドを使ってクラスタアクセスするところまでを確認する。
まず、クラスタの一覧を取得する。
$ tanzu mission-control cluster list
NAME MANAGEMENTCLUSTER PROVISIONER LABELS
cluster01 attached attached tmc.cloud.vmware.com/creator:xxxx
hogeeee-sof2-harbor hogeeee-sof2-mc default tmc.cloud.vmware.com/creator:hogeeee
hogeeee-temp tkg15hogeeee default tmc.cloud.vmware.com/creator:tkg15hogeeee
次にkubeconfigをダウンロードする。
なお、先程tanzu mission-control cluster list
を実行した時に表示されたManagement ClusterとProviderをそれぞれ-m
, -p
オプションで指定する必要がある。
tanzu mission-control cluster kubeconfig get hogeeee-sof2-harbor -m hogeeee-sof2-mc -p default > /tmp/tmc-hogeeee-sof2-harbor.yaml
環境変数KUBECONFIG
にパスを設定する。
export KUBECONFIG=/tmp/tmc-hogeeee-sof2-harbor.yaml
適当にkubectlを実行する。
$ kubectl get node
NAME STATUS ROLES AGE VERSION
hogeeee-sof2-harbor-md-0-kdbxr-668cf79f89-5kj92 Ready <none> 32d v1.25.7+vmware.2
hogeeee-sof2-harbor-md-0-kdbxr-668cf79f89-gr6ls Ready <none> 28d v1.25.7+vmware.2
hogeeee-sof2-harbor-md-0-kdbxr-668cf79f89-vlgk5 Ready <none> 32d v1.25.7+vmware.2
hogeeee-sof2-harbor-md-0-kdbxr-668cf79f89-zsqvk Ready <none> 28d v1.25.7+vmware.2
hogeeee-sof2-harbor-tb5p4-2t2d2 Ready control-plane 30d v1.25.7+vmware.2
hogeeee-sof2-harbor-tb5p4-6hbf5 Ready control-plane 30d v1.25.7+vmware.2
hogeeee-sof2-harbor-tb5p4-z55mx Ready control-plane 32d v1.25.7+vmware.2
問題なさそうだ。
余談
なお、tmc
コマンドから出来ていたことにはなるが、Management Clusterを作成した環境にアクセスしなくてもクラスタのkubeconfig
が取得できるので地味に便利である。
あと、tmc
コマンドをバリバリに使ってた方はこちらを参考に置き換えを進めるとよい。