ワークロード クラスタの作成

このトピックでは、Tanzu CLI を使用してワークロード クラスタを作成する方法について説明します。

前提条件

(推奨)構成ファイルからのクラスタの作成

下記の手順では、クラスタ構成ファイルからワークロード クラスタを展開する方法について説明します。クラスタ構成ファイルから、次のタイプのクラスタを作成できます。

これらのクラスタ タイプの詳細については、「Tanzu Kubernetes Grid について」の「ワークロード クラスタ タイプ」を参照してください。

クラスベースのクラスタを作成する

下記の手順では、クラスタ構成ファイルからクラスベースのワークロード クラスタを展開する方法について説明します。展開により作成されたクラスタは、Kubernetes の Cluster オブジェクトで表されます。

重要

VMware では、展開するすべてのクラスタに専用の構成ファイルを使用して保持することを推奨しています。

  1. 上記の「前提条件」の一部として準備した構成ファイルを見つけます。

  2. クラスタを作成します。クラスタは、オブジェクトが作成される前に、そのオブジェクト仕様を確認するか編集するかに応じて、1 段階または 2 段階の手順で作成できます。

    • (推奨)1 段階でクラスタを作成する場合は、クラスタ構成ファイルを tanzu cluster create--file オプションに渡します。これにより、コマンドによって自動的に適用されます。
    • 2 段階でクラスタを作成する場合は、クラスタ構成ファイルを tanzu cluster create--file オプションに渡します。これにより、コマンドによってそのファイルが Cluster オブジェクト仕様に変換され、コマンドはクラスタを作成せずに終了します。仕様を確認または編集したら、tanzu cluster create を再実行してクラスタを作成します。

    TKG v2.3.1 on AWS および Azure で、オブジェクト仕様からクラスタを作成するには、『VMware Tanzu Kubernetes Grid v2.3 リリース ノート』の「AWS および Azure で、オブジェクト仕様を使用してワークロード クラスタを作成するとゾーン/リージョン エラーで失敗しす」の説明に従って、1 段階プロセスを使用するか、AZ 検証を明示的にスキップする必要があります。

    1 段階のプロセス(推奨)
    1 段階のプロセスを実行するには、次の手順を実行します。
    1. auto-apply-generated-clusterclass-based-configurationtrue に設定します(まだ設定されていない場合)。これにより、常に 1 段階のプロセスでクラスベースのクラスタを作成するように Tanzu CLI が構成されます。auto-apply-generated-clusterclass-based-configuration の詳細については、『Tanzu CLI のアーキテクチャと構成』の「機能」を参照してください。

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
      
    2. --file オプションにクラスタの構成ファイルへのパスを指定して、tanzu cluster create を実行します。たとえば、構成ファイル my-workload-cluster.yaml をデフォルトの clusterconfigs フォルダに保存した場合は、次のコマンドを実行して、構成ファイルで指定した名前のクラスタを作成します。

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      

      クラスタ構成ファイルに名前を指定しなかった場合、または指定した名前とは異なる名前のクラスタを作成する場合は、tanzu cluster create コマンドでクラスタ名を指定します。たとえば、構成ファイル my-workload-cluster.yaml から another-workload-cluster という名前のクラスタを作成するには、次のコマンドを実行します。

      tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      
    2 段階のプロセス(常時)
    作成するすべてのクラスタで 2 段階のプロセスを実行するには、次の手順を実行します。
    1. auto-apply-generated-clusterclass-based-configuration 機能を false に設定します(まだ設定されていない場合)。これにより、常に 2 段階のプロセスでクラスベースのクラスタを作成するように Tanzu CLI が構成されます。false がデフォルト設定です。デフォルト設定を変更した後で false に設定を戻すには、次のコマンドを実行します。

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
      

      auto-apply-generated-clusterclass-based-configuration の詳細については、『Tanzu CLI のアーキテクチャと構成』の「機能」を参照してください。

    2. オブジェクト仕様を生成するには、--file オプションにクラスタ構成ファイルへのパスを指定して、tanzu cluster create を実行します。コマンドは、結果のオブジェクト仕様を ~/.config/tanzu/tkg/clusterconfigs フォルダに保存し、その場所を出力してから終了します。

      たとえば、クラスタ構成ファイル my-workload-cluster.yaml をデフォルトの clusterconfigs フォルダに保存した場合は、次のコマンドを実行してオブジェクト仕様を生成します。

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      

      構成ファイルにクラスタの名前を指定しなかった場合、または指定した名前とは異なる名前のクラスタを作成する場合は、tanzu cluster create コマンドでクラスタ名を指定します。例:

      tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      
    3. tanzu cluster create で生成されたオブジェクト仕様ファイルを確認するか、編集します。

    4. --file オプションにオブジェクト仕様へのパスを指定して、tanzu cluster create コマンドを再実行します。例:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml
      

      管理クラスタとは異なる Kubernetes バージョンを実行するクラスタを作成する場合は、--tkr フラグなど、最初の手順で使用したのと同じフラグをすべて含めます。例:

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
      
    2 段階のプロセス(1 回)
    単一クラスタに対して 2 段階のプロセスを実行するには、次の手順を実行します。
    1. オブジェクト仕様を生成するには、--dry-run オプションを指定して tanzu cluster create を実行します。--dry-run オプションは、auto-apply-generated-clusterclass-based-configuration 設定をオーバーライドします。

      tanzu cluster create CLUSTER-NAME --dry-run --file PATH-TO-CLUSTER-CONFIG-FILE.yaml > PATH-TO-OBJECT-SPEC-FILE.yaml
      

      ここで、

      • CLUSTER-NAME はクラスタの名前です。CLUSTER-NAME は、クラスタ構成ファイルで指定済みであれば省略できます。
      • PATH-TO-CLUSTER-CONFIG-FILE は、手順 1 で特定したクラスタ構成ファイルへのパスです。
      • PATH-TO-OBJECT-SPEC-FILE は、結果のオブジェクト仕様ファイルを保存する場所です。

      たとえば、結果のオブジェクト仕様を my-workload-cluster-spec.yaml という名前のファイルに保存するには、次を実行します。

      tanzu cluster create my-cluster --dry-run --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml > my-workload-cluster-spec.yaml
      
    2. 前の手順の --dry-run オプションによって生成されたオブジェクト仕様ファイルを確認または編集します。上記の例では、仕様ファイルの名前は my-workload-cluster-spec.yaml です。

    3. オブジェクト仕様ファイルを確認または編集したら、--dry-run オプションを指定せずに tanzu cluster create を再実行します。--file オプションで、オブジェクト仕様ファイルへのパスを指定します。例:

      tanzu cluster create my-cluster --file my-workload-cluster-spec.yaml
      

      管理クラスタとは異なる Kubernetes バージョンを実行するクラスタを作成する場合は、--tkr フラグなど、最初の手順で使用したのと同じフラグをすべて含めます。例:

      tanzu cluster create --file my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
      

    クラスベースのクラスタを作成する場合、Tanzu CLI では、「ytt を使用したレガシー クラスタ構成」で説明されている ytt カスタマイズを使用しません。CLI がマシン上でそれらを検出すると、「It seems like you have done some customizations to the template overlays.」というエラーを出力します。

  3. クラスタが作成されたら、tanzu cluster get コマンドを実行して、クラスタに関する情報を表示します。

    tanzu cluster get CLUSTER-NAME
    

    出力には、制御プレーン ノードとワーカー ノードのステータス、クラスタが実行されている Kubernetes のバージョン、ノードの名前に関する情報が一覧表示されます。

(レガシー)プランベースまたは TKC クラスタの作成

下記の手順では、構成ファイルからプランベースのクラスタまたは TKC クラスタを展開する方法について説明します。

  • プランベースのクラスタ:結果のクラスタは、ターゲットとするインフラストラクチャ プラットフォームに応じて、Kubernetes の AWSClusterAzureCluster、または VSphereCluster オブジェクトによって表されます。
  • TKC クラスタ:展開により作成されたクラスタは、Kubernetes の TanzuKubernetesCluster オブジェクトで表されます。

クラスタを作成するには、次の手順を実行します。

  1. Tanzu CLI で allow-legacy-cluster 機能を true に設定します。

    tanzu config set features.cluster.allow-legacy-cluster true
    
  2. クラスタを作成します。

    プランベースのクラスタ
    プランベースのクラスタを作成する場合は、次の手順を実行します。
    1. 上記の「前提条件」の一部として準備した構成ファイルを見つけます。
    2. tanzu cluster create コマンドを実行し、--file オプションで構成ファイルへのパスを指定します。たとえば、ワークロード構成ファイル my-workload-cluster.yaml をデフォルトの clusterconfigs フォルダに保存した場合は、次のコマンドを実行して、構成ファイルで指定した名前のクラスタを作成します。

      tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      

      構成ファイルに名前を指定しなかった場合、または指定した名前とは異なる名前のクラスタを作成する場合は、tanzu cluster create コマンドでクラスタ名を指定します。たとえば、構成ファイル my-workload-cluster.yaml から another-workload-cluster という名前のクラスタを作成するには、次のコマンドを実行します。

      tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
      
    3. クラスタが作成されたら、tanzu cluster get コマンドを実行して、クラスタに関する情報を表示します。

      tanzu cluster get CLUSTER-NAME
      

      出力には、制御プレーン ノードとワーカー ノードのステータス、クラスタが実行されている Kubernetes のバージョン、ノードの名前に関する情報が一覧表示されます。

    TKC クラスタ
    TKC クラスタを作成する場合は、次の手順を実行します。
    1. スーパーバイザーで展開された TKC クラスタの構成(レガシー)」の説明に従って、ワークロード クラスタの構成ファイルを作成またはコピーします。

    2. Tanzu CLI をスーパーバイザーに接続したら、ターゲットの vSphere 名前空間を取得します。

      tanzu namespaces get
      
    3. クラスタのバージョン管理された Tanzu Kubernetes リリース (TKr) を特定します。

      1. スーパーバイザー クラスタで使用可能な TKr のリストを取得します。

        tanzu kubernetes-release get
        
      2. コマンド出力から、NAME にリストされている目的の値を記録します(例:v1.26.8---vmware.2-tkg.1)。tkrNAME 値は VERSION 値と同じですが、NAME 値が + で VERSION 値が --- の場合を除きます。

    4. TKR-NAME 値と構成ファイル名を指定し、tanzu cluster create を実行してクラスタを展開します。

      tanzu cluster create CLUSTER-NAME --file CONFIGURATION-FILE --tkr=TKR-NAME
      

      ここで、

      • CLUSTER-NAME は、クラスタに指定する任意の名前です。このコマンドライン値は、構成ファイルの CLUSTER_NAME 設定をオーバーライドします。
      • CONFIGURATION-FILE は、クラスタ構成ファイルへのローカル パスです(例:~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml)。
      • TKR-NAME は、上の手順で取得した TKr の名前です。
    5. クラスタが作成されたら、tanzu cluster get を実行して、クラスタの現在のステータスを確認します。

      tanzu cluster get CLUSTER-NAME
      
    6. ノードの DHCP 予約とエンドポイント DNS レコードの構成(vSphere のみ)」の説明に従って、制御プレーン ノードとエンドポイントの IP アドレスを固定に構成します。

オブジェクト仕様からのクラスタの作成

下記の手順では、Kubernetes スタイルのオブジェクト仕様を使用してクラスベースのワークロード クラスタを作成する方法について説明します。

  1. 以下の「オブジェクト仕様の作成」の説明に従って、クラスタ オブジェクト仕様を作成します。
  2. 以下の「オブジェクト仕様からのクラスベースのクラスタの作成」の説明に従って、オブジェクト仕様からクラスタを展開します。

TKG v2.3.1 on AWS および Azure で、オブジェクト仕様からクラスタを作成するには、『VMware Tanzu Kubernetes Grid v2.3 リリース ノート』の「AWS および Azure で、オブジェクト仕様を使用してワークロード クラスタを作成するとゾーン/リージョン エラーで失敗しす」の説明に従って、1 段階プロセスを使用するか、AZ 検証を明示的にスキップする必要があります。

オブジェクト仕様の作成

クラスベースのワークロード クラスタについて Kubernetes スタイルのオブジェクト仕様ファイルを作成するには、次の手順を実行します。

スタンドアローン管理クラスタ
スタンドアローン管理クラスタを使用する vSphere、AWS、または Azure にワークロード クラスタを展開する場合、Tanzu CLI を使用すると、クラスタを展開せずにクラスタ構成ファイルをクラスベースのワークロード クラスタ用の Kubernetes スタイルのオブジェクト仕様ファイルに変換できます。その後、その仕様を例として使用して、独自の仕様を作成できます。仕様ファイルを作成するには、次を行えます。
  • auto-apply-generated-clusterclass-based-configuration 機能のデフォルト構成を更新した場合は、false に設定を戻してから、--file フラグ付きで tanzu cluster create を実行します。auto-apply-generated-clusterclass-based-configurationfalse に設定するには、次を実行します。

    tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
    

    この機能が false に設定されている場合に、--file フラグを指定して tanzu cluster create を実行すると、クラスタ構成ファイルがオブジェクト仕様ファイルに変換され、クラスタを作成することなくコマンドが終了します。構成を確認したら、Tanzu CLI によって生成されたオブジェクト仕様ファイルを使用して tanzu cluster create を再実行します。

  • 単一クラスタの仕様ファイルを作成するには、--dry-run オプションを tanzu cluster create に渡して、出力をファイルに保存します。クラスタを作成する場合に使用するのと同じオプションと構成 --file を使用します。例:

    tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
    

    --dry-run オプションは、auto-apply-generated-clusterclass-based-configuration 設定をオーバーライドします。

オブジェクト仕様ファイルの例については、「Cluster オブジェクトとその従属オブジェクトの例」を参照してください。

スーパーバイザー
スーパーバイザーを使用する vSphere 8 にワークロード クラスタを展開する場合は、「 スーパーバイザーで展開されたクラスベースのクラスタの構成」の説明に従って、 Cluster オブジェクト仕様を作成または適用します。
  • vSphere 8 のドキュメントには、作業用のサンプルとして使用できる Cluster オブジェクト仕様があります。例:v1beta1 サンプル:デフォルトのクラスタ
  • 仕様ファイルの topology ブロックで、仮想マシンのタイプ、スケール、およびその他の基本的なクラスタ構成を設定します。
  • クラスタ インフラストラクチャのコンテナ インターフェイスのワンタイム設定など、Cluster オブジェクト自体で設定できない属性をカスタマイズするには、「インフラストラクチャのワンタイム設定の構成」を参照してください。


オブジェクト仕様からのクラスベースのクラスタの作成

オブジェクト仕様からクラスベースのワークロード クラスタを展開するには、オブジェクト仕様を tanzu cluster create--file オプションに渡します。次に例を示します。

tanzu cluster create my-cluster --file my-cluster-spec.yaml

クラスベースのクラスタを作成する場合、Tanzu CLI では、「ytt を使用したレガシー クラスタ構成」で説明されている ytt カスタマイズを使用しません。CLI がマシン上でそれらを検出すると、「It seems like you have done some customizations to the template overlays.」というエラーを出力します。

共有サービス クラスタの作成

vSphere with Tanzu スーパーバイザー クラスタではなく、tanzu management-cluster create または tanzu mc create で作成された管理クラスタによって管理されるワークロード クラスタの場合、Harbor またはその他のサービスを展開すると、すべてのワークロードが単一のサービス インスタンスを共有できるようになります。

各 Tanzu Kubernetes Grid インスタンスには、1 つの共有サービス クラスタのみを含めることができます。

共有サービス クラスタに Harbor を展開すると、同じ管理クラスタで管理されているすべてのワークロード クラスタで、単一の Harbor インスタンスを共有できます。Harbor を展開する手順については、「サービス レジストリ用の Harbor のインストール」を参照してください。

共有サービス クラスタを作成するには、次の手順を実行します。

  1. クラスタのクラスタ構成 YAML ファイルを作成します。dev プランではなく、prod クラスタ プランを使用することをお勧めします。例:

    INFRASTRUCTURE_PROVIDER: vsphere
    CLUSTER_NAME: YOUR-CLUSTER-NAME
    CLUSTER_PLAN: prod
    

    YOUR-CLUSTER-NAME は、クラスタに対して選択する名前です。たとえば、tkg-services などです。

  2. vSphere のみ)クラスタの制御プレーン API に対してデフォルトの Kube-Vip ロード バランサを使用する場合は、VSPHERE_CONTROL_PLANE_ENDPOINT を設定してエンドポイントを指定する必要があります。この VIP アドレスが DHCP 範囲内ではなく、DHCP 範囲と同じサブネットにあることを確認します。完全修飾ドメイン名 (FQDN) を仮想 IP アドレスにマッピングした場合は、仮想 IP アドレスの代わりに FQDN を指定できます。
    NSX Advanced Load Balancer (ALB) を使用している場合は、制御プレーン エンドポイントを特定のアドレスにする必要がない限り、VSPHERE_CONTROL_PLANE_ENDPOINT を設定しないでください。その場合は、固定 IP アドレス プールに手動で追加した NSX ALB IP アドレス管理プロファイルの仮想 IP アドレス ネットワーク範囲内の固定アドレスを使用するか、固定アドレスにマッピングされた FQDN を使用します。

    例:

    VSPHERE_CONTROL_PLANE_ENDPOINT: 10.10.10.10
    
  3. 上記の「構成ファイルからのクラスタの作成」の説明に従って、共有サービス クラスタを作成します。

  4. kubectl のコンテキストを管理クラスタのコンテキストに設定します。例:

    kubectl config use-context mgmt-cluster-admin@mgmt-cluster
    

    この例では、mgmt-cluster は管理クラスタの名前です。

  5. tanzu-services ラベルをクラスタ ロールとして共有サービス クラスタに追加します。このラベルは、管理クラスタおよびワークロード クラスタに対する共有サービス クラスタを識別します。例:

    kubectl label cluster.cluster.x-k8s.io/tkg-services cluster-role.tkg.tanzu.vmware.com/tanzu-services="" --overwrite=true
    

    この例では、tkg-services は共有サービス クラスタの名前です。確認のための cluster.cluster.x-k8s.io/tkg-services labeled が表示されます。

  6. 次のコマンドを実行して、ラベルが正しく適用されていることを確認します。

    tanzu cluster list --include-management-cluster
    

    共有サービス クラスタに tanzu-services ロールが割り当てられていることが表示されます。例:

    NAME              NAMESPACE   STATUS   CONTROLPLANE  WORKERS  KUBERNETES        ROLES           PLAN   TKR
    another-cluster   default     running  1/1           1/1      v1.26.8+vmware.1  <none>          dev    v1.26.8---vmware.2-tkg
    tkg-services      default     running  3/3           3/3      v1.26.8+vmware.1  tanzu-services  prod   v1.26.8---vmware.2-tkg
    mgmt-cluster      tkg-system  running  1/1           1/1      v1.26.8+vmware.1  management      dev    v1.26.8---vmware.2-tkg
    
  7. 共有サービス クラスタの admin 認証情報を取得します。例:

    tanzu cluster kubeconfig get tkg-services --admin
    
  8. kubectl のコンテキストを共有サービス クラスタに設定します。例:

    kubectl config use-context tkg-services-admin@tkg-services
    

次の手順

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