ワークロード クラスタへの接続と確認

ワークロード クラスタを展開したら、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.24.10+vmware.1 <none>      dev   v1.24.10---vmware.1-tkg.1
    workload-cluster-2     default     running        1/1           1/1      v1.24.10+vmware.1 <none>      dev   v1.24.10---vmware.1-tkg.1
    mgmt-cluster           tkg-system  running        1/1           1/1      v1.24.10+vmware.1 management  dev   v1.24.10---vmware.1-tkg.1
    
  • すべての管理クラスタを表示し、Tanzu CLI のコンテキストを別の管理クラスタに変更するには、tanzu login コマンドを実行します。詳細については、「管理クラスタの一覧表示とコンテキストの変更」を参照してください。

ワークロード クラスタの詳細のファイルへのエクスポート

アクセス権のあるクラスタの詳細を JSON または YAML 形式でエクスポートできます。JSON または YAML をファイルに保存することで、スクリプトで使用して、クラスタで一括操作を実行できます。

JSON ファイルとしてエクスポート

クラスタの詳細を 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.24.10+vmware.1",
    "roles": [],
    "tkr": "v1.24.10---vmware.1-tkg.1",
    "labels": {
      "cluster.x-k8s.io/cluster-name": "workload-cluster-1",
      "run.tanzu.vmware.com/tkr": "v1.24.10---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.24.10+vmware.1",
    "roles": [],
    "tkr": "v1.24.10---vmware.1-tkg.1",
    "labels": {
      "tanzuKubernetesRelease": "v1.24.10---vmware.1-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
    }
  }
]

YAML ファイルとしてエクスポート

クラスタの詳細を 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.24.10+vmware.1
  roles: []
  tkr: v1.24.10---vmware.1-tkg.1
  labels:
    cluster.x-k8s.io/cluster-name: workload-cluster-1
    run.tanzu.vmware.com/tkr: v1.24.10---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.24.10+vmware.1
  roles: []
  tkr: v1.24.10---vmware.1-tkg.1
  labels:
    tanzuKubernetesRelease: v1.24.10---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 プロバイダで認証する必要があります。

admin 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 を使用してクラスタに接続できます。

  1. 使用可能なコンテキストを取得します。

    kubectl config get-contexts
    
  2. kubectl をクラスタにポイントします。例:

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. 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.24.10+vmware.1
    my-dev-cluster-md-0-infra-n62lq-hq4k9      Ready    <none>          2d2h   v1.24.10+vmware.1
    

    ワークロード クラスタでは Antrea を使用したネットワークがデフォルトで有効になっているため、すべてのクラスタは追加の構成をまったく必要とせずに Ready 状態になります。

  4. 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
    

ワークロード クラスタへの標準ユーザーとしてのアクセス(スタンドアローン管理クラスタ)

このセクションでは、管理者以外の標準ユーザーがスタンドアローン管理クラスタによって展開されたワークロード クラスタにログインする方法について説明します。このワークフローは、クラスタの管理クラスタを作成したクラスタ管理者がワークロード クラスタにアクセスする方法とは異なります。

前提条件

このタスクを実行する前に、次の点を確認します。

  • システムで実行されている Docker アプリケーションがある。システムで Microsoft Windows が実行されている場合は、Docker モードを Linux に設定し、Windows Subsystem for Linux を構成します。
    • Linux マシンで、snap の代わりに apt を使用して、CLI から Docker をインストールします。
  • クラスタ管理者から次の情報を取得済みである。

ワークロード クラスタへのアクセス

  1. Tanzu CLI で次のコマンドを実行します。

    tanzu login --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
    

    ここで、

    • デフォルトでは、PORT6443 です。クラスタ管理者がクラスタの展開時に CLUSTER_API_SERVER_PORT または VSPHERE_CONTROL_PLANE_ENDPOINT_PORT を設定した場合は、その変数で定義されているポート番号を使用します。
    • SERVER-NAME は管理クラスタ サーバの名前です。

    管理クラスタで ID 管理が構成されている場合は、ID 管理プロバイダ(LDAP または OIDC)のログイン画面がデフォルトのブラウザで開きます。

    LDAPS:

    LDAPS ログイン ページ

    OIDC:

    OIDC ログイン ページ

  2. ID 管理プロバイダにログインします。

  3. 次のコマンドを実行して、ワークロード クラスタに切り替えます。

    kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
    

    ここで、CONTEXT および MY-KUBECONFIG はクラスタ コンテキストであり、クラスタ管理者から取得した kubeconfig ファイルです。

Tanzu CLI への以降のログインでは、tanzu login と入力した後にポップアップ表示されるリストから Tanzu Kubernetes Grid 環境を選択するオプションが表示されます。

check-circle-line exclamation-circle-line close-line
Scroll to top icon