このトピックでは、Tanzu CLI を使用してワークロード クラスタを作成する方法について説明します。
下記の手順では、クラスタ構成ファイルからワークロード クラスタを展開する方法について説明します。クラスタ構成ファイルから、次のタイプのクラスタを作成できます。
クラスベースのクラスタ:ワークロード クラスタを次の環境に展開する場合は、「クラスベースのクラスタの作成」の手順に従います。
スーパーバイザーを使用する vSphere 8 にクラスベースのワークロードを展開する場合は、「スーパーバイザーで展開されたクラスベースのクラスタの構成」の説明に従って、オブジェクト仕様から展開する必要があります。クラスタ構成ファイルとオブジェクト仕様の詳細については、「構成ファイル」を参照してください。
(レガシー)プランベースのクラスタおよび TKC クラスタ:下記の「(レガシー)プランベースまたは TKC クラスタの作成」の手順に従います。
これらのクラスタ タイプの詳細については、「Tanzu Kubernetes Grid について」の「ワークロード クラスタ タイプ」を参照してください。
下記の手順では、クラスタ構成ファイルからクラスベースのワークロード クラスタを展開する方法について説明します。展開により作成されたクラスタは、Kubernetes の Cluster
オブジェクトで表されます。
重要VMware では、展開するすべてのクラスタに専用の構成ファイルを使用して保持することを推奨しています。
上記の「前提条件」の一部として準備した構成ファイルを見つけます。
クラスタを作成します。クラスタは、オブジェクトが作成される前に、そのオブジェクト仕様を確認するか編集するかに応じて、1 段階または 2 段階の手順で作成できます。
tanzu cluster create
の –file
オプションに渡します。これにより、コマンドによって自動的に適用されます。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 検証を明示的にスキップする必要があります。
auto-apply-generated-clusterclass-based-configuration
を true
に設定します(まだ設定されていない場合)。これにより、常に 1 段階のプロセスでクラスベースのクラスタを作成するように Tanzu CLI が構成されます。auto-apply-generated-clusterclass-based-configuration
の詳細については、『Tanzu CLI のアーキテクチャと構成』の「機能」を参照してください。
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
--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
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 のアーキテクチャと構成』の「機能」を参照してください。
オブジェクト仕様を生成するには、--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
tanzu cluster create
で生成されたオブジェクト仕様ファイルを確認するか、編集します。
--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
オブジェクト仕様を生成するには、--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
前の手順の --dry-run
オプションによって生成されたオブジェクト仕様ファイルを確認または編集します。上記の例では、仕様ファイルの名前は my-workload-cluster-spec.yaml
です。
オブジェクト仕様ファイルを確認または編集したら、--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.
」というエラーを出力します。
クラスタが作成されたら、tanzu cluster get
コマンドを実行して、クラスタに関する情報を表示します。
tanzu cluster get CLUSTER-NAME
出力には、制御プレーン ノードとワーカー ノードのステータス、クラスタが実行されている Kubernetes のバージョン、ノードの名前に関する情報が一覧表示されます。
下記の手順では、構成ファイルからプランベースのクラスタまたは TKC クラスタを展開する方法について説明します。
AWSCluster
、AzureCluster
、または VSphereCluster
オブジェクトによって表されます。TanzuKubernetesCluster
オブジェクトで表されます。クラスタを作成するには、次の手順を実行します。
Tanzu CLI で allow-legacy-cluster
機能を true
に設定します。
tanzu config set features.cluster.allow-legacy-cluster true
クラスタを作成します。
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
クラスタが作成されたら、tanzu cluster get
コマンドを実行して、クラスタに関する情報を表示します。
tanzu cluster get CLUSTER-NAME
出力には、制御プレーン ノードとワーカー ノードのステータス、クラスタが実行されている Kubernetes のバージョン、ノードの名前に関する情報が一覧表示されます。
「スーパーバイザーで展開された TKC クラスタの構成(レガシー)」の説明に従って、ワークロード クラスタの構成ファイルを作成またはコピーします。
Tanzu CLI をスーパーバイザーに接続したら、ターゲットの vSphere 名前空間を取得します。
tanzu namespaces get
クラスタのバージョン管理された Tanzu Kubernetes リリース (TKr) を特定します。
スーパーバイザー クラスタで使用可能な TKr のリストを取得します。
tanzu kubernetes-release get
コマンド出力から、NAME
にリストされている目的の値を記録します(例:v1.26.8---vmware.2-tkg.1
)。tkr
の NAME
値は VERSION
値と同じですが、NAME 値が +
で VERSION 値が ---
の場合を除きます。
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 の名前です。クラスタが作成されたら、tanzu cluster get
を実行して、クラスタの現在のステータスを確認します。
tanzu cluster get CLUSTER-NAME
「ノードの DHCP 予約とエンドポイント DNS レコードの構成(vSphere のみ)」の説明に従って、制御プレーン ノードとエンドポイントの IP アドレスを固定に構成します。
下記の手順では、Kubernetes スタイルのオブジェクト仕様を使用してクラスベースのワークロード クラスタを作成する方法について説明します。
注TKG v2.3.1 on AWS および Azure で、オブジェクト仕様からクラスタを作成するには、『VMware Tanzu Kubernetes Grid v2.3 リリース ノート』の「AWS および Azure で、オブジェクト仕様を使用してワークロード クラスタを作成するとゾーン/リージョン エラーで失敗しす」の説明に従って、1 段階プロセスを使用するか、AZ 検証を明示的にスキップする必要があります。
クラスベースのワークロード クラスタについて Kubernetes スタイルのオブジェクト仕様ファイルを作成するには、次の手順を実行します。
auto-apply-generated-clusterclass-based-configuration
機能のデフォルト構成を更新した場合は、false
に設定を戻してから、--file
フラグ付きで tanzu cluster create
を実行します。auto-apply-generated-clusterclass-based-configuration
を false
に設定するには、次を実行します。
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
オブジェクトとその従属オブジェクトの例」を参照してください。
Cluster
オブジェクト仕様を作成または適用します。
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 のインストール」を参照してください。
共有サービス クラスタを作成するには、次の手順を実行します。
クラスタのクラスタ構成 YAML ファイルを作成します。dev
プランではなく、prod
クラスタ プランを使用することをお勧めします。例:
INFRASTRUCTURE_PROVIDER: vsphere
CLUSTER_NAME: YOUR-CLUSTER-NAME
CLUSTER_PLAN: prod
YOUR-CLUSTER-NAME
は、クラスタに対して選択する名前です。たとえば、tkg-services
などです。
(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
上記の「構成ファイルからのクラスタの作成」の説明に従って、共有サービス クラスタを作成します。
kubectl
のコンテキストを管理クラスタのコンテキストに設定します。例:
kubectl config use-context mgmt-cluster-admin@mgmt-cluster
この例では、mgmt-cluster
は管理クラスタの名前です。
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
が表示されます。
次のコマンドを実行して、ラベルが正しく適用されていることを確認します。
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
共有サービス クラスタの admin
認証情報を取得します。例:
tanzu cluster kubeconfig get tkg-services --admin
kubectl
のコンテキストを共有サービス クラスタに設定します。例:
kubectl config use-context tkg-services-admin@tkg-services