0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

tanzuコマンドを使ってTanzu Mission Control経由でクラスタにアクセスする

Last updated at Posted at 2023-07-14

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コマンドをバリバリに使ってた方はこちらを参考に置き換えを進めるとよい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?