このトピックでは、Tanzu Kubernetes Grid (TKG) によって作成されるさまざまなタイプのワークロード クラスタと、それらの構成および作成方法について説明します。
Tanzu Kubernetes Grid は、次の 3 つの異なるタイプのワークロード クラスタをホストします。
Cluster
タイプの Kubernetes オブジェクトであるspec.topology
ブロックで定義されている
spec.topology.class
値から構成を継承する
ClusterClass
オブジェクトを参照class
は tanzukubernetescluster
class
は tkg-INFRASTRUCTURE-default-VERSION
(例:tkg-vsphere-default-v1.0.0
)です。TanzuKubernetesCluster
タイプの Kubernetes オブジェクトであるCluster
タイプの Kubernetes オブジェクトであるclass: tanzukubernetescluster
(すべて小文字)のクラスベースのクラスタは、オブジェクト タイプが TanzuKubernetesCluster
の TKC ベースのクラスタとは異なります。
クラスベースのクラスタは、両方のタイプの管理クラスタに対して同じ API を提供することで、他の 2 つのクラスタ タイプを置き換えるように設計されています。スーパーバイザーおよびスタンドアローン管理クラスタ。
重要Tanzu Kubernetes Grid v2.4.x は、AWS および Azure での TKG ワークロード クラスタの作成をサポートする TKG の最後のバージョンです。AWS および Azure で TKG ワークロード クラスタを作成する機能は、Tanzu Kubernetes Grid v2.5 リリースで削除されます。詳細については、『VMware Tanzu Kubernetes Grid v2.4 Release Notes』の「AWS および Azure での TKG 管理クラスタとワークロード クラスタの廃止」を参照してください。
ワークロード クラスタを作成および管理するために、管理クラスタはクラスタ API ソフトウェアを実行します。
次の表は、管理およびワークロード クラスタ タイプを、使用するクラスタ API プロバイダにマッピングしたものです。
TKG と共に使用 | 使用するクラスタ API プロバイダ | 場所 | 作成および管理するワークロード クラスタのタイプ | 製品バージョン |
---|---|---|---|---|
スーパーバイザー | CAPW(独自仕様) | vSphere | クラスベースの Cluster オブジェクト |
TKG 2.x および vSphere with Tanzu 8 |
TanzuKubernetesCluster オブジェクト |
vSphere with Tanzu 7 & 8 | |||
スタンドアローン管理クラスタ | CAPA (OSS) | AWS | クラスベースの Cluster オブジェクト |
TKG v2.x |
プランベースの AWSCluster オブジェクト |
TKG v2.x および v1.x | |||
CAPZ (OSS) | Azure | クラスベースの Cluster オブジェクト |
TKG v2.x | |
プランベースの AzureCluster オブジェクト |
TKG v2.x および v1.x | |||
CAPV (OSS) | vSphere | クラスベースの Cluster オブジェクト |
TKG v2.x | |
プランベースの VSphereCluster オブジェクト |
TKG v2.x および v1.x |
さまざまなバージョンの Tanzu Kubernetes Grid に同梱されているさまざまなバージョンの Tanzu CLI により、vSphere 8 のスーパーバイザー、vSphere 7 のスーパーバイザー クラスタ、またはスーパーバイザーを使用しない vSphere 6.7、7、および 8、または AWS、Azure のスタンドアローン管理クラスタのどれを使用しているかに応じて、さまざまなタイプのクラスタを作成できます。
CLI バージョン | TKG バージョン | クラスベースのクラスタの作成に使用 | プランベースのクラスタの作成に使用 | TanzuKubernetesClusters の作成に使用 |
||||||
---|---|---|---|---|---|---|---|---|---|---|
スタンドアローン管理クラスタ | vSphere 8 のスーパーバイザー | vSphere 7 のスーパーバイザー クラスタ | スタンドアローン管理クラスタ | vSphere 8 のスーパーバイザー | vSphere 7 のスーパーバイザー クラスタ | スタンドアローン管理クラスタ | vSphere 8 のスーパーバイザー | vSphere 7 のスーパーバイザー クラスタ | ||
v0.90.1* | 2.3.0 | ✓ | ✓ | x | ✓ | ✓ | x | x | ✓ | x |
v0.29.0 | 2.2.0 | ✓ | ✓ | x | ✓ | ✓ | x | x | ✓ | x |
v0.28.1 | 2.1.1 | ✓ | ✓ | x | ✓ | ✓ | x | x | ✓ | x |
v0.25.4 | 1.6.1 | x | ✓ | x | ✓ | ✓ | x | x | ✓ | ✓ |
v0.25.0 | 1.6.0 | x | ✓ | x | ✓ | ✓ | x | x | ✓ | ✓ |
v0.11.x | 1.5.x | x | x | x | ✓ | x | x | x | x | ✓ |
* Tanzu Kubernetes Grid v2.4 と互換性のある CLI バージョンの完全なリストについては、「 製品の相互運用性マトリックス」を参照してください。
クラスベースのクラスタには、次のようなオブジェクト タイプの上位階層があります。KubeAdmControlPlane
と MachineDeployment
の基盤となるオブジェクトは同じタイプですが、通常は異なるオブジェクトです。
Cluster
- 仕様の topology
ブロックによって設定された制御プレーンとワーカー ノードの数とタイプ
KubeAdmControlPlane
- 制御プレーン ノードを定義します。
vSphereMachine
、AWSMachine
、DockerMachine
Machine
- ノード仮想マシン用の汎用オブジェクトKubeAdmConfig
- Kubernetes 構成(Kubernetes のバージョン、イメージ リポジトリ、デプロイ前およびデプロイ後のフックなど)MachineDeployment
- ワーカー ノードを定義します。
Machine
KubeAdmConfig
詳細については、『The Cluster API Book』の「CustomResourceDefinitions relationships」を参照してください。
インストールされている環境に応じて、Tanzu CLI、Tanzu Mission Control、kubectl
など、さまざまな方法で Tanzu Kubernetes Grid ワークロード クラスタを作成できます。
次のチャートは、ユーザーがさまざまなインフラストラクチャでさまざまなタイプのワークロード クラスタを作成する方法の概要を示しています。
使用ツール | 作成するクラスタ | 設定値の取得元 | テンプレートの取得元 | 方法 |
---|---|---|---|---|
Tanzu CLI:tanzu cluster create |
クラスベースのワークロード クラスタ (vSphere) | Cluster および基盤となるオブジェクト仕様 |
ユーザー(classycluster.yaml など) | クラスベースのクラスタを作成する |
TanzuKubernetesCluster ワークロード クラスタ (vSphere) |
クラスタ構成ファイル、 ローカル環境、 (詳細) ytt オーバーレイ |
infrastructure-tkg-service-vsphere * |
(レガシー)プランベースまたは TKC クラスタの作成 | |
プランベースのワークロード クラスタ(vSphere、AWS、Azure) | infrastructure-vsphere 、infrastructure-aws 、infrastructure-azure * |
|||
Tanzu Mission Control (TMC) | TanzuKubernetesCluster またはプランベースのワークロード クラスタ |
TMC ユーザー インターフェイス | 登録済み管理クラスタ | ワークロード クラスタのプロビジョニング |
kubectl apply |
クラスベースまたはTanzuKubernetesCluster ワークロード クラスタ (vSphere) |
Cluster および基盤となるオブジェクト仕様 |
ユーザー(classycluster.yaml、tkc.yaml など) | 宣言によるワークロード クラスタの作成 |
*.config/tanzu/tkg/providers/
の下のローカル ディレクトリ
Tanzu CLI は、TKC ベースのワークロード クラスタを作成するときに、次の構成値を組み合わせます。
~/.config/tanzu/tkg/cluster-config.yaml
または CLI --file
オプションに渡されるその他のファイル~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
内のクラスタ プランの YAML 構成ファイル。~/.config/tanzu/tkg/providers
のプラン以外の YAML 構成ファイルライブ入力は各呼び出しに固有の設定値を適用します。それらの値は、環境変数によってターミナル セッション間で保持され、構成ファイルとオーバーレイでは無期限に保持されます。これらのソースのいずれかを使用してクラスタをカスタマイズできます。推奨事項と注意事項については、以下を参照してください。
tanzu
CLI が競合の可能性がある複数のソースから特定のクラスタ構成値を取得する方法については、「構成値の優先順位」を参照してください。
~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
ディレクトリには、cluster-template-definition-PLAN.yaml
という名前の TKC ワークロード クラスタ プラン構成ファイルが含まれています。各プランの構成値は、これらのファイルと、spec.paths
にリストされているファイルから取得されます。
tanzu
CLI に同梱されている構成ファイルspec.paths
リストに追加するカスタム ファイルYAML を使用してクラスタ プランをカスタマイズするには、~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
にあるファイルを編集します。それ以外の場所のファイルは変更しないでください。
編集するファイル
ワークロード クラスタ プラン構成ファイルのパスは、~/.config/tanzu/tkg/providers/infrastructure-infrastructure-tkg-service-vsphere/VERSION/cluster-template-definition-PLAN.yaml
の形式に従います。ここで、
VERSION
は、構成で使用されるクラスタ API プロバイダ モジュールのバージョンです。PLAN
は dev
、prod
、またはカスタム プランです。各プラン構成ファイルには、spec.paths
セクションがあり、ソース ファイルと、クラスタ プランを構成する ytt
ディレクトリが一覧表示されます。例:
apiVersion: providers.tanzu.vmware.com/v1alpha1
kind: TemplateDefinition
spec:
paths:
- path: providers/infrastructure-tkg-service-vsphere/v1.1.0/ytt
- path: providers/ytt
- path: bom
filemark: text-plain
- path: providers/config_default.yaml
これらのファイルは、リストされている順序で処理されます。同じ構成フィールドが複数のファイルに設定されている場合、最後に処理された設定が tanzu
CLI によって使用されます。
クラスタ構成をカスタマイズするには、次の操作を実行します。
spec.paths
リストに追加します。
ytt
オーバーレイ ファイルを変更します。
ytt
に慣れているユーザーにとって、これはより強力な方法です。編集しないファイル
VMware は、別段の指示がない限り、~/.config/tanzu/tkg/providers
の下にある次のファイルを変更することを推奨しません。
ytt
ディレクトリ内の base-template.yaml
ファイル
ytt
を使用した高度な TKC 構成」の「クラスタとクラスタ プラン」を参照して、同じ ytt
ディレクトリ内の overlay.yaml
ファイルに値を設定します。~/.config/tanzu/tkg/providers/config_default.yaml
- 追加のみ
User Customizations
セクションを追加することは可能です。tanzu cluster create
の --file
オプションに渡すファイルでクラスタ構成をカスタマイズします。~/.config/tanzu/tkg/providers/config.yaml
tanzu
CLI は、/providers
ディレクトリにあるすべてのプロバイダとそのデフォルト バージョンのリファレンスとしてこのファイルを使用します。Tanzu CLI は、TKC ベースのワークロード クラスタを作成するときに、複数のソースの構成値を組み合わせます。これらのソースが競合する場合、次の降順の優先順位で競合を解決します。
処理レイヤー(降順の優先順位) | ソース | 例 |
---|---|---|
1.ローカル環境で設定されたクラスタ構成変数 | シェルで設定します。 | export WORKER_VM_CLASS=best-effort-large |
2.tanzu config set env. を使用して Tanzu CLI で設定されたクラスタ構成変数。 |
シェルで設定します。グローバル Tanzu CLI 構成ファイル、~/.config/tanzu/config.yaml に保存されます。 |
tanzu config set env.WORKER_VM_CLASS best-effort-large |
3.クラスタ構成ファイルに設定されたクラスタ構成変数 | tanzu cluster create の --file オプションに渡すファイルで設定します。デフォルトのファイルは ~/.config/tanzu/tkg/cluster-config.yaml です。 |
WORKER_VM_CLASS: best-effort-large |
4.工場出荷時のデフォルト構成値 | providers/config_default.yaml で設定しますが、一部のフィールドはデフォルト値なしで一覧表示されます。このファイルは変更しないでください。 |
WORKER_VM_CLASS: |