ワークロード クラスタを展開したら、tanzu cluster list および tanzu cluster kubeconfig get コマンドを使用して、実行中のクラスタとその認証情報のリストを取得します。次に、kubectl を使用してクラスタに接続し、クラスタの操作を開始します。
ワークロード クラスタおよびそれらを管理する管理クラスタを一覧表示するには、tanzu cluster list コマンドを使用します。
管理クラスタの default 名前空間で実行されているすべてのワークロード クラスタを一覧表示するには、tanzu cluster list コマンドを実行します。
tanzu cluster list
出力には、クラスタ名、現在のステータス、制御プレーン ノードとワーカー ノードの実際の数と要求された数、クラスタが実行されている Kubernetes のバージョンなど、デフォルトの名前空間内のワークロード クラスタがすべて一覧表示されます。
クラスタには次の状態があります。
creating:制御プレーンを作成しています。createStalled:制御プレーンの作成プロセスが停止しました。deleting:クラスタの削除中です。failed:制御プレーンの作成に失敗しました。running:制御プレーンが完全に初期化されました。updating:クラスタは更新のロールアウト中か、ノードのスケーリング中です。updateFailed:クラスタの更新プロセスが失敗しました。updateStalled:クラスタの更新プロセスが停止しました。クラスタが停止状態の場合は、外部レジストリへのネットワーク接続があること、操作を完了するのに十分なリソースがターゲット プラットフォームにあること、DHCP が IPv4 アドレスを正しく発行していることを確認します。
アクセスできるすべての名前空間内のクラスタを一覧表示するには、-A または --all-namespaces オプションを指定します。
tanzu cluster list --all-namespaces
特定の名前空間で実行されているクラスタのみを一覧表示するには、--namespace オプションを指定します。
tanzu cluster list --namespace=NAMESPACE
ここで、NAMESPACE はクラスタが実行されている名前空間です。
vSphere with Tanzu では、DevOps エンジニアはアクセス可能な名前空間を指定するために tanzu cluster listを実行するときに、--namespace 値を含める必要があります。VMware vSphere のドキュメントの「vSphere with Tanzu のユーザー ロールとワークフロー」を参照してください。
スタンドアローン管理クラスタにログインしている場合は、現在のスタンドアローン管理クラスタを tanzu cluster list の出力に含めるために、--include-management-cluster -A オプションを指定します。
tanzu cluster list --include-management-cluster -A
管理クラスタが tkg-system 名前空間で実行されており、management ロールを持っていることを確認できます。
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
workload-cluster-1 default running 1/1 1/1 v1.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg.1
workload-cluster-2 default running 1/1 1/1 v1.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.25.7+vmware.1 management dev v1.25.7---vmware.1-tkg.1
すべての管理クラスタを表示し、Tanzu CLI のコンテキストを別の管理クラスタに変更するには、tanzu login コマンドを実行します。詳細については、「管理クラスタの一覧表示とコンテキストの変更」を参照してください。
アクセス権のあるクラスタの詳細を JSON または YAML 形式でエクスポートできます。JSON または YAML をファイルに保存することで、スクリプトで使用して、クラスタで一括操作を実行できます。
クラスタの詳細を JSON としてエクスポートするには、--output オプションに json を指定して、tanzu cluster list を実行します。
tanzu cluster list --output json > clusters.json
出力には、クラスタ情報が JSON として表示されます。
[
{
"name": "workload-cluster-1",
"namespace": "default",
"status": "running",
"plan": "dev",
"controlplane": "1/1",
"workers": "1/1",
"kubernetes": "v1.25.7+vmware.1",
"roles": [],
"tkr": "v1.25.7---vmware.1-tkg.1",
"labels": {
"cluster.x-k8s.io/cluster-name": "workload-cluster-1",
"run.tanzu.vmware.com/tkr": "v1.25.7---vmware.1-tkg.1",
"tkg.tanzu.vmware.com/cluster-name": "workload-cluster-1",
"topology.cluster.x-k8s.io/owned": ""
}
},
{
"name": "workload-cluster-2",
"namespace": "default",
"status": "running",
"plan": "dev",
"controlplane": "1/1",
"workers": "1/1",
"kubernetes": "v1.25.7+vmware.1",
"roles": [],
"tkr": "v1.25.7---vmware.1-tkg.1",
"labels": {
"tanzuKubernetesRelease": "v1.25.7---vmware.1-tkg.1",
"tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
}
}
]
クラスタの詳細を YAML としてエクスポートするには、--output オプションに yaml を指定して、tanzu cluster list を実行します。
tanzu cluster list --output yaml > clusters.yaml
出力には、クラスタ情報が YAML として表示されます。
- name: workload-cluster-1
namespace: default
status: running
plan: dev
controlplane: 1/1
workers: 1/1
kubernetes: v1.25.7+vmware.1
roles: []
tkr: v1.25.7---vmware.1-tkg.1
labels:
cluster.x-k8s.io/cluster-name: workload-cluster-1
run.tanzu.vmware.com/tkr: v1.25.7---vmware.1-tkg.1
tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
topology.cluster.x-k8s.io/owned: ""
- name: workload-cluster-1
namespace: default
status: running
plan: dev
controlplane: 1/1
workers: 1/1
kubernetes: v1.25.7+vmware.1
roles: []
tkr: v1.25.7---vmware.1-tkg.1
labels:
tanzuKubernetesRelease: v1.25.7---vmware.1-tkg.1
tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
複数の管理クラスタについて、コンテキストや kubeconfig ファイルなどの詳細を保存する方法については、「管理クラスタの管理」を参照してください。
kubeconfig の取得ワークロード クラスタを作成したら、クラスタの名前を指定して tanzu cluster kubeconfig get コマンドを実行することで、そのコンテキストと kubeconfig の設定を取得できます。デフォルトでは、コマンドはクラスタの kubeconfig 設定を現在の kubeconfig ファイルに追加します。
tanzu cluster kubeconfig get my-cluster
重要クラスタで ID 管理が構成されていない場合は、
--adminオプションを指定する必要があります。
kubeconfig をファイルにエクスポートするには、--export-file オプションを指定します。
tanzu cluster kubeconfig get my-cluster --export-file my-cluster-kubeconfig
重要
kubeconfigファイルを削除すると、Tanzu CLI から展開されたすべてのクラスタにアクセスできなくなります。
クラスタで ID 管理とロールベースのアクセス制御 (RBAC) が構成されている場合、標準の非管理者の kubeconfig 認証情報を持つユーザーは、クラスタにログインするために外部 ID プロバイダで認証する必要があります。
kubeconfig認証情報が組み込まれたスタンドアローン admin kubeconfig ファイルを生成するには、--admin オプションを追加します。この kubeconfig ファイルは、ユーザーにクラスタのリソースへのフル アクセス権を付与し、ID プロバイダにログインせずにクラスタにアクセスできるようにします。
tanzu cluster kubeconfig get my-cluster --admin
次の出力が表示されます。
You can now access the cluster by running 'kubectl config use-context my-cluster-admin@my-cluster'
kubeconfigターゲット クラスタで ID 管理が構成されている場合は、管理者以外の標準の kubeconfig を生成できます。この機能を使用するには、ユーザーが外部 ID プロバイダで認証し、割り当てられたロールに基づいてクラスタ リソースへのアクセス権が付与されるようにする必要があります。この場合は、--admin オプションを指定せずに、tanzu cluster kubeconfig get を実行します。
tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE
ここで、CLUSTER-NAME および NAMESPACE は、ターゲットとするクラスタと名前空間です。
次の出力が表示されます。
You can now access the cluster by running 'kubectl config use-context ...'
たとえば開発者に配布するために、構成情報をスタンドアローンの kubeconfig ファイルに保存するには、--export-file オプションを指定します。この kubeconfig ファイルを使用するには、ユーザーが外部 ID プロバイダで認証し、割り当てられたロールに基づいてクラスタ リソースへのアクセス権が付与されるようにする必要があります。
tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE --export-file PATH-TO-FILE
重要デフォルトでは、
--export-fileオプションを指定してクラスタのkubeconfigを特定のファイルに保存しない限り、Tanzu CLI から展開するすべてのクラスタの認証情報は共有のkubeconfigファイルに追加されます。共有のkubeconfigファイルを削除すると、すべてのクラスタが使用できなくなります。
kubeconfig に認証情報を追加したら、kubectl を使用してクラスタに接続できます。
使用可能なコンテキストを取得します。
kubectl config get-contexts
kubectl をクラスタにポイントします。例:
kubectl config use-context my-cluster-admin@my-cluster
kubectl を使用して、クラスタ内のノードのステータスを確認します。
kubectl get nodes
たとえば、dev プランを使用して my-dev-cluster を展開した場合は、次の出力が表示されます。
NAME STATUS ROLES AGE VERSION
my-dev-cluster-control-plane-9qx88-p88cp Ready control-plane 2d2h v1.25.7+vmware.1
my-dev-cluster-md-0-infra-n62lq-hq4k9 Ready <none> 2d2h v1.25.7+vmware.1
ワークロード クラスタでは Antrea を使用したネットワークがデフォルトで有効になっているため、すべてのクラスタは追加の構成をまったく必要とせずに Ready 状態になります。
kubectl を使用して、クラスタで実行されているポッドのステータスを確認します。
kubectl get pods -A
次の例では、Azure 上の my-dev-cluster クラスタ内の kube-system 名前空間で実行されているポッドを示しています。
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system antrea-agent-ck7lv 2/2 Running 4 (3h7m ago) 2d2h
kube-system antrea-agent-fpq79 2/2 Running 4 (3h7m ago) 2d2h
kube-system antrea-controller-66d7978fd7-nkzgb 1/1 Running 4 (3h7m ago) 2d2h
kube-system coredns-77d74f6759-b68ht 1/1 Running 2 (3h7m ago) 2d2h
kube-system coredns-77d74f6759-qfp8b 1/1 Running 2 (3h7m ago) 2d2h
kube-system csi-azuredisk-controller-5957dc576c-42tsd 6/6 Running 12 (3h7m ago) 2d2h
kube-system csi-azuredisk-node-5hmkw 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-azuredisk-node-k7fr7 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-azurefile-controller-5d48b98756-rmrxp 5/5 Running 10 (3h7m ago) 2d2h
kube-system csi-azurefile-node-brnf2 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-azurefile-node-vqghv 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-snapshot-controller-7ffbf75bd9-5m64r 1/1 Running 2 (3h7m ago) 2d2h
kube-system etcd-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-apiserver-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-controller-manager-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-proxy-hqhfx 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-proxy-s6wwf 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-scheduler-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system metrics-server-545546cdfd-qhbxc 1/1 Running 2 (3h7m ago) 2d2h
secretgen-controller secretgen-controller-7b7cbc6d9d-p6qww 1/1 Running 2 (3h7m ago) 2d2h
tkg-system kapp-controller-868f9469c5-j58pn 2/2 Running 5 (3h7m ago) 2d2h
tkg-system tanzu-capabilities-controller-manager-b46dcfc7f-7dzd9 1/1 Running 4 (3h7m ago) 2d2h
このセクションでは、管理者以外の標準ユーザーがスタンドアローン管理クラスタによって展開されたワークロード クラスタにログインする方法について説明します。このワークフローは、クラスタの管理クラスタを作成したクラスタ管理者がワークロード クラスタにアクセスする方法とは異なります。
このタスクを実行する前に、次の点を確認します。
snap の代わりに apt を使用して、CLI から Docker をインストールします。kubeconfig ファイル(「ワークロード クラスタ kubeconfig の取得」を参照)Tanzu CLI で次のコマンドを実行します。
tanzu login --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
ここで、
PORT は 6443 です。クラスタ管理者がクラスタの展開時に CLUSTER_API_SERVER_PORT または VSPHERE_CONTROL_PLANE_ENDPOINT_PORT を設定した場合は、その変数で定義されているポート番号を使用します。SERVER-NAME は管理クラスタ サーバの名前です。管理クラスタで ID 管理が構成されている場合は、ID 管理プロバイダ(LDAP または OIDC)のログイン画面がデフォルトのブラウザで開きます。
LDAPS:

OIDC:

ID 管理プロバイダにログインします。
次のコマンドを実行して、ワークロード クラスタに切り替えます。
kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
ここで、CONTEXT および MY-KUBECONFIG はクラスタ コンテキストであり、クラスタ管理者から取得した kubeconfig ファイルです。
Tanzu CLI への以降のログインでは、tanzu login と入力した後にポップアップ表示されるリストから Tanzu Kubernetes Grid 環境を選択するオプションが表示されます。