ワークロード クラスタを展開したら、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.27.5+vmware.1 <none> dev v1.27.5---vmware.2-tkg.1
workload-cluster-2 default running 1/1 1/1 v1.27.5+vmware.1 <none> dev v1.27.5---vmware.2-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.27.5+vmware.1 management dev v1.27.5---vmware.2-tkg.1
すべての管理クラスタを表示し、Tanzu CLI のコンテキストを別の管理クラスタに変更するには、tanzu context use
コマンドを実行します。詳細については、「管理クラスタの一覧表示とコンテキストの変更」を参照してください。
アクセス権のあるクラスタの詳細を 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.27.5+vmware.1",
"roles": [],
"tkr": "v1.27.5---vmware.2-tkg.1",
"labels": {
"cluster.x-k8s.io/cluster-name": "workload-cluster-1",
"run.tanzu.vmware.com/tkr": "v1.27.5---vmware.2-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.27.5+vmware.1",
"roles": [],
"tkr": "v1.27.5---vmware.2-tkg.1",
"labels": {
"tanzuKubernetesRelease": "v1.27.5---vmware.2-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.27.5+vmware.1
roles: []
tkr: v1.27.5---vmware.2-tkg.1
labels:
cluster.x-k8s.io/cluster-name: workload-cluster-1
run.tanzu.vmware.com/tkr: v1.27.5---vmware.2-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.27.5+vmware.1
roles: []
tkr: v1.27.5---vmware.2-tkg.1
labels:
tanzuKubernetesRelease: v1.27.5---vmware.2-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.27.5+vmware.1
my-dev-cluster-md-0-infra-n62lq-hq4k9 Ready <none> 2d2h v1.27.5+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 context create --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 context use
と入力した後にポップアップ表示されるリストから Tanzu Kubernetes Grid 環境を選択するオプションが表示されます。