Tanzu Kubernetes クラスタをプロビジョニングするには、kubectl と、YAML で定義したクラスタ仕様を使用して、Tanzu Kubernetes Grid サービス 宣言型 API を呼び出します。クラスタをプロビジョニングしたら、クラスタを操作し、kubectl を使用してワークロードをクラスタにデプロイします。

このワークフローは、クラスタのプロビジョニング プロセスに対するエンドツーエンドの手順を示します。各ステップには、特定のタスクの詳細についてのリンクが含まれています。

前提条件

次の前提条件を満たすようにします。
  • スーパーバイザー クラスタ インスタンスを構成している。スーパーバイザー クラスタ の構成と管理を参照してください。
  • Tanzu Kubernetes クラスタをプロビジョニングする vSphere 名前空間 を作成している。vSphere 名前空間 の作成と設定を参照してください。

    名前空間の初期構成には、以下が必要です。

    • 1 人以上の DevOps エンジニアが vCenter Single Sign-On 認証情報を使用して名前空間にアクセスできるように編集権限が追加されている。
    • 名前空間のタグベースの共有ストレージ ポリシー。
    • 名前空間の容量と使用量の割り当てが検証され、必要に応じて調整されている。
  • 共有データストアに Tanzu Kubernetes リリース 用のコンテンツ ライブラリを作成し、使用するリリースを同期している。Tanzu Kubernetes リリース のコンテンツ ライブラリの作成と管理を参照してください。
  • コンテンツ ライブラリおよび仮想マシン クラスに vSphere 名前空間 を関連付けている。Tanzu Kubernetes リリース 用の vSphere 名前空間 の構成を参照してください。

手順

  1. vSphere 向け Kubernetes CLI Tools をダウンロードしてインストールします。vSphere 向け Kubernetes CLI Tools のダウンロードとインストールを参照してください。
  2. kubectl 向けの vSphere プラグイン を使用して、スーパーバイザー クラスタ での認証を行います。vCenter Single Sign-On ユーザーとして スーパーバイザー クラスタ に接続するを参照してください。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  3. kubectl を使用して、Tanzu Kubernetes クラスタをプロビジョニングする vSphere 名前空間 にコンテキストを切り替えます。
    kubectl config get-contexts
    kubectl config use-context SUPERVISOR-NAMESPACE
    例:
    kubectl config use-context tkgs-cluster-ns
  4. 使用可能な仮想マシン クラスのバインドを一覧表示します。Tanzu Kubernetes クラスタの仮想マシンのクラスを参照してください。
    次のコマンドを使用して、クラスタをデプロイする vSphere 名前空間 で使用可能なすべての仮想マシン クラスのバインドを一覧表示します。
    kubectl get virtualmachineclassbindings
    注: kubectl get virtualmachineclasses コマンドは、 スーパーバイザー クラスタ にあるすべての仮想マシン クラスを一覧表示します。仮想マシン クラスと vSphere 名前空間 を関連付ける必要がある場合は、ターゲット名前空間にバインドされているこれらの仮想マシン クラスのみを使用します。
  5. 名前空間を記述して、使用可能なデフォルト ストレージ クラスを取得します。
    kubectl describe namespace SUPERVISOR-NAMESPACE
  6. 使用可能な Tanzu Kubernetes リリース を一覧表示します。
    注: 互換性については、 Tanzu Kubernetes リリース のリストを参照してください。 更新のための Tanzu Kubernetes クラスタ互換性の確認を参照してください。
    kubectl get tanzukubernetesreleases
    注: kubectl get virtualmachineimages コマンドは、仮想マシンに関する一般情報を返します。
  7. Tanzu Kubernetes クラスタをプロビジョニングするための YAML ファイルを作成します。
    1. いずれかのサンプル YAML ファイルを使用して開始します。Tanzu Kubernetes Grid サービス v1alpha1 API を使用した Tanzu Kubernetes クラスタのプロビジョニングの例を参照してください。
      たとえば、次の YAML ファイルは、使用可能なすべてのデフォルト設定を使用して、最小のクラスタをプロビジョニングします。
      apiVersion: run.tanzu.vmware.com/v1alpha1  #TKGS API endpoint
      kind: TanzuKubernetesCluster               #required parameter
      metadata:
        name: tkgs-cluster-1                     #cluster name, user defined
        namespace: tgks-cluster-ns               #vsphere namespace
      spec:
        distribution:
          version: v1.19                         #Resolves to latest TKR 1.19 version
        topology:
          controlPlane:
            count: 1                             #number of control plane nodes
            class: best-effort-medium            #vmclass for control plane nodes
            storageClass: vwt-storage-policy     #storageclass for control plane
          workers:
            count: 3                             #number of worker nodes
            class: best-effort-medium            #vmclass for worker nodes
            storageClass: vwt-storage-policy     #storageclass for worker nodes
      
    2. 前述のコマンドの出力から取得した情報を使用して、名前空間、ストレージ クラス、仮想マシン クラスを含むクラスタ YAML にポピュレートします。
    3. クラスタ構成パラメータの完全なリストを参照して、必要に応じてクラスタをカスタマイズします。Tanzu Kubernetes Grid サービス v1alpha1 API を使用する Tanzu Kubernetes クラスタの構成パラメータを参照してください。
    4. ファイルを tkgs-cluster-1.yaml などの名前で保存します。
  8. 次の kubectl コマンドを実行して、クラスタをプロビジョニングします。
    kubectl apply -f CLUSTER-NAME.yaml
    例:
    kubectl apply -f tkgs-cluster-1.yaml
    予期される結果:
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 created
  9. kubectl を使用して、クラスタ ノードのデプロイを監視します。kubectl を使用した Tanzu Kubernetes クラスタのステータスの監視を参照してください。
    kubectl get tanzukubernetesclusters
    結果の例:
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE     PHASE
    tkgs-cluster-2   1               3        v1.19.7+vmware.1-tkg.1.c40d30d   7m59s   running
  10. vSphere Client を使用して、クラスタ ノードのデプロイを監視します。vSphere Client を使用した Tanzu Kubernetes クラスタのステータスの監視を参照してください。
    たとえば、vSphere インベントリに、名前空間にデプロイされている仮想マシン ノードが表示されます。
  11. 追加のコマンドを実行して、クラスタのプロビジョニングを確認します。Tanzu Kubernetes Cluster の操作コマンドの使用を参照してください。
    例:
    kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
    注: その他のトラブルシューティングについては、 Tanzu Kubernetes クラスタのトラブルシューティングを参照してください。
  12. kubectl 向けの vSphere プラグイン を使用して、クラスタにログインします。vCenter Single Sign-On ユーザーとして Tanzu Kubernetes クラスタに接続を参照してください。
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  13. 次の kubectl コマンドを使用して、クラスタのプロビジョニングを確認します。
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources
  14. サンプル ワークロードをデプロイし、クラスタの作成を確認します。Tanzu Kubernetes クラスタへのワークロードのデプロイを参照してください。
    注: Tanzu Kubernetes クラスタではポッド セキュリティ ポリシーが有効になっています。ワークロードとユーザーによっては、適切な RoleBinding またはカスタムの PodSecurityPolicy を作成する必要がある場合があります。 Tanzu Kubernetes クラスタでのポッド セキュリティ ポリシーの使用を参照してください。
  15. TKG Extensions をデプロイして、クラスタを操作できるようにします。Tanzu Kubernetes クラスタへの TKG パッケージのデプロイを参照してください。