Tanzu Kubernetes Grid サービス 宣言型 API は、Tanzu Kubernetes クラスタを構成するためのパラメータをいくつか公開しています。クラスタをプロビジョニングおよびカスタマイズするには、すべてのパラメータのリストと説明、および使用に関するガイドラインを参照してください。
Tanzu Kubernetes クラスタをプロビジョニングするための注釈付き YAML
apiVersion: run.tanzu.vmware.com/v1alpha1 kind: TanzuKubernetesCluster metadata: name: <tanzu kubernetes cluster name> namespace: <vsphere namespace where the cluster will be provisioned> spec: distribution: version: <tanzu kubernetes release version string: full, point, short> topology: controlPlane: count: <integer either 1 or 3> class: <vm class bound to the target vsphere namespace> storageClass: <vsphere storage policy bound to the target vsphere namespace> volumes: #optional setting for high-churn control plane component (such as etcd) - name: <user-defined string> mountPath: </dir/path> capacity: storage: <size in GiB> workers: count: <integer from 0 to 150> class: <vm class bound to the target vsphere namespace> storageClass: <vsphere storage policy bound to the target vsphere namespace> volumes: #optional setting for high-churn worker node component (such as containerd) - name: <user-defined string> mountPath: </dir/path> capacity: storage: <size in GiB> settings: #all spec.settings are optional storage: #optional storage settings classes: [<array of kubernetes storage classes for dynamic pvc provisioning>] defaultClass: <default kubernetes storage class> network: #optional network settings cni: #override default cni set in the tkgservicesonfiguration spec name: <antrea or calico> pods: #custom pod network cidrBlocks: [<array of pod cidr blocks>] services: #custom service network cidrBlocks: [<array of service cidr blocks>] serviceDomain: <custom service domain> proxy: #proxy server for outbound connections httpProxy: http://<IP:PORT> httpsProxy: http://<IP:PORT> noProxy: [<array of CIDRs to not proxy>] trust: #trust fields for custom public certs for tls additionalTrustedCAs: - name: <first-cert-name> data: <base64-encoded string of PEM encoded public cert 1> - name: <second-cert-name> data: <base64-encoded string of PEM encoded public cert 2>
Tanzu Kubernetes クラスタをプロビジョニングするためのパラメータ
次の表に、Tanzu Kubernetes クラスタのプロビジョニングに使用できるすべてのパラメータおよび使用できる値のリストと説明を示します。例については、Tanzu Kubernetes Grid サービス v1alpha1 API の構成の例を参照してください。
名前 | 値 | 説明 |
---|---|---|
apiVersion |
run.tanzu.vmware.com/v1alpha1 |
Tanzu Kubernetes Grid サービス API のバージョンを指定します。 |
kind |
TanzuKubernetesCluster |
作成する Kubernetes リソースのタイプを指定します。使用できる値は TanzuKubernetesCluster のみです(大文字と小文字を区別)。 |
metadata |
クラスタ メタデータのセクション | name や namespace などのクラスタ メタデータが含まれています。これは標準の Kubernetes メタデータであるため、name の代わりに generateName を使用したり、ラベルや注釈を追加したりすることができます。 |
name |
英数字とダッシュを使用するユーザー定義の文字列(例:my-tkg-cluster-1 ) |
作成するクラスタの名前を指定します。現在のクラスタの名前付けの制約:
|
namespace |
英数字とダッシュを使用するユーザー定義の文字列(例:my-sns-1 ) |
クラスタがデプロイされるスーパーバイザー ネームスペースの名前を識別します。これは、スーパーバイザー クラスタ内にあるスーパーバイザー ネームスペースへの参照です。 |
spec |
クラスタの技術仕様のセクション | ノードの toplogy や Kubernetes ソフトウェアの distribution など、クラスタのエンド状態の仕様を宣言型形式で示します。 |
distribution |
Tanzu Kubernetes リリースのバージョンを指定するセクション | クラスタのディストリビューションを指定します。これは、制御プレーンとワーカー ノードにインストールされている Tanzu Kubernetes クラスタ ソフトウェアで、Kubernetes 自体も含みます。 |
version |
Kubernetes のバージョンを表す、ダッシュを含む英数字の文字列(例: 、v1.20.2 、v1.20 ) |
セマンティックなバージョン表記を使用して、クラスタ ノードにインストールする Kubernetes ディストリビューションのソフトウェア バージョンを指定します。完全修飾バージョンを指定するか、ショートカットを使用することができます。「version: v1.20.2」は、そのパッチ バージョンに一致する最新のイメージに解決され、「version: v1.20」は該当する最新のパッチ バージョンに解決されます。クラスタの作成後、その説明に解決後のバージョンが「fullVersion」として表示されます。 |
topology |
クラスタ ノード トポロジのセクション | クラスタ ノードの数、目的、および編成と、それぞれに割り当てられたリソースを示すフィールドを含んでいます。クラスタ ノードは、目的に応じて control-plane または worker のプールにグループ化されます。各プールは同種で、同じリソース割り当てを持ち、同じストレージを使用します。 |
controlPlane |
制御プレーン設定のセクション | ノードの数 (count )、仮想マシンのタイプ (class )、各ノードに割り当てられるストレージ リソース (storageClass ) など、クラスタ制御プレーンのトポロジを指定します。 |
count |
1 または 3 のいずれかの整数 |
制御プレーン ノードの数を指定します。制御プレーンには奇数個のノードが必要です。 |
class |
列挙セットからの文字列形式のシステム定義要素(例:guaranteed-small 、best-effort-large ) |
プール内の各ノードで使用される仮想ハードウェア設定を示す VirtualMachineClass の名前を指定します。これにより、ノード(CPU とメモリ)で使用できるハードウェア、およびこれらのリソースの要求と制限が制御されます。Tanzu Kubernetes クラスタの仮想マシンのクラスを参照してください。 |
storageClass |
node-storage (例) |
制御プレーン ノードのルート ファイル システムを格納するディスクのストレージに使用されるストレージ クラスを識別します。使用可能なストレージ クラスを表示するには、名前空間で kubectl describe ns を実行します。名前空間で使用可能なストレージ クラスは、vSphere 管理者が設定するストレージによって異なります。スーパーバイザー ネームスペースに関連付けられているストレージ クラスがクラスタに複製されます。つまり、ストレージ クラスがこのフィールドで有効な値になるためには、スーパーバイザー ネームスペースで使用できる必要があります。vSphere 名前空間の構成と管理を参照してください。 |
volumes |
オプションのストレージ設定
|
制御プレーン ノードの etcd のディスクとストレージのパラメータを個別に指定できます。ディスク パラメータとストレージ パラメータを個別に使用するクラスタの例を参照してください。 |
workers |
ワーカー ノード設定のセクション | ノードの数 (count )、仮想マシンのタイプ (class )、各ノードに割り当てられるストレージ リソース (storageClass ) など、クラスタ ワーカー ノードのトポロジを指定します。 |
count |
0 ~ 150 の整数(例:1 、2 、7 ) |
クラスタ内のワーカー ノードの台数を指定します。ワーカー ノード数がゼロのクラスタを作成することで、制御プレーン ノードのみを持つクラスタを使用できます。ワーカー ノードの数には、厳密な上限はありませんが、妥当な制限は 150 です。
注: 0 台のワーカー ノードを使用してプロビジョニングされたクラスタには、ロード バランサ サービスが割り当てられません。
|
class |
列挙セットからの文字列形式のシステム定義要素(例:guaranteed-small 、best-effort-large ) |
プール内の各ノードで使用される仮想ハードウェア設定を示す VirtualMachineClass の名前を指定します。これにより、ノード(CPU とメモリ)で使用できるハードウェア、およびこれらのリソースの要求と制限が制御されます。Tanzu Kubernetes クラスタの仮想マシンのクラスを参照してください。 |
storageClass |
node-storage (例) |
ワーカー ノードのルート ファイル システムを格納するディスクのストレージに使用されるストレージ クラスを識別します。使用可能なストレージ クラスを一覧表示するには、名前空間で kubectl describe ns を実行します。名前空間で使用可能なストレージ クラスは、vSphere 管理者が設定するストレージによって異なります。スーパーバイザー ネームスペースに関連付けられているストレージ クラスがクラスタに複製されます。つまり、有効にするためには、スーパーバイザー ネームスペースでストレージ クラスを使用できる必要があります。vSphere 名前空間の構成と管理を参照してください。 |
volumes |
オプションのストレージ設定
|
ワーカー ノードのコンテナ イメージのディスクとストレージのパラメータを個別に指定できます。ディスク パラメータとストレージ パラメータを個別に使用するクラスタの例を参照してください。 |
settings |
クラスタ固有の設定に関するセクション(すべての spec.settings はオプション) |
クラスタのランタイム構成情報(オプション)を識別します。これには、ノードの network の詳細とポッドのパーシステント storage が含まれます。 |
storage |
ストレージを指定するセクション | コンテナ ワークロードのパーシステント ボリューム (PV) ストレージ エントリを識別します。 |
classes |
1 つ以上のユーザー定義文字列の配列(例:["gold", "silver"] ) |
コンテナ ワークロードの名前付きパーシステント ボリューム (PV) ストレージ クラスを指定します。スーパーバイザー ネームスペースに関連付けられているストレージ クラスがクラスタに複製されます。つまり、有効な値であるためには、スーパーバイザー ネームスペースでストレージ クラスを使用できる必要があります。ストレージ クラスとパーシステント ボリュームのデフォルト クラスを使用するクラスタの例を参照してください。 |
defaultClass |
silver (例) |
クラスタ内でデフォルトとして注釈が付けられる名前付きストレージ クラスを指定します。これを指定しないと、デフォルトはありません。defaultClass を指定するために 1 つまたは複数の classes を指定する必要はありません。一部のワークロードでは、Helm などのデフォルト クラスが必要な場合があります。ストレージ クラスとパーシステント ボリュームのデフォルト クラスを使用するクラスタの例を参照してください。 |
network |
ネットワーク設定のセクション マーカー | クラスタのネットワーク関連の設定を指定します。 |
cni |
CNI を指定するためのセクション マーカー | クラスタのコンテナ ネットワーク インターフェイス (CNI) プラグインを識別します。デフォルトは Antrea です。新しいクラスタに指定する必要はありません。 |
name |
文字列 antrea または calico |
使用する CNI を指定します。Antrea と Calico がサポートされています。システム構成により、Antrea がデフォルトの CNI として設定されます。デフォルトの CNI は変更できます。デフォルトを使用する場合、このフィールドを指定する必要はありません。 |
services |
Kubernetes サービス サブネットを指定するセクション マーカー | Kubernetes サービスのネットワーク設定を識別します。デフォルトは 10.96.0.0/12 です。 |
cidrBlocks |
配列 ["198.51.100.0/12"] (例) |
Kubernetes サービスで使用する IP アドレスの範囲を指定します。デフォルトは 10.96.0.0/12 です。スーパーバイザー クラスタ用に選択された設定と重複しないようにしてください。このフィールドは複数の範囲を指定できる配列ですが、現在は IP アドレス範囲を 1 つのみ使用できます。Tanzu Kubernetes Grid サービス v1alpha1 API を使用した Tanzu Kubernetes クラスタのプロビジョニングの例のネットワークの例を参照してください。 |
pods |
Kubernetes ポッドのサブネットを指定するセクション マーカー | ポッドのネットワーク設定を指定します。デフォルトは 192.168.0.0/16 です。最小ブロック サイズは /24 です。 |
cidrBlocks |
配列 ["192.0.2.0/16"] (例) |
Kubernetes ポッドで使用する IP アドレスの範囲を指定します。デフォルトは 192.168.0.0/16 です。スーパーバイザー クラスタ用に選択された設定と重複しないようにしてください。ポッドのサブネット サイズは /24 以上にする必要があります。このフィールドは複数の範囲を指定できる配列ですが、現在は IP アドレス範囲を 1 つのみ使用できます。Tanzu Kubernetes Grid サービス v1alpha1 API を使用した Tanzu Kubernetes クラスタのプロビジョニングの例のネットワークの例を参照してください。 |
serviceDomain |
"cluster.local" |
クラスタのサービス ドメインを指定します。デフォルトは cluster.local です。 |
proxy |
クラスタの HTTP(S) プロキシ設定を指定するセクション。実装されている場合は、すべてのフィールドが必須です。 | 指定したプロキシ設定のフィールドに入力します。グローバル プロキシが設定され、クラスタ プロキシが個別に設定されていない場合は、自動的にポピュレートされます。プロキシ サーバを使用するクラスタの例を参照してください。 |
httpProxy |
http://<user>:<pwd>@<ip>:<port> |
クラスタ外の HTTP 接続の作成に使用するプロキシ URL を指定します。 |
httpsProxy |
http://<user>:<pwd>@<ip>:<port> |
クラスタ外の HTTPS 接続の作成に使用するプロキシ URL を指定します。 |
noProxy |
プロキシにしない CIDR ブロックの配列( スーパーバイザー クラスタのワークロード ネットワークから必要な値を取得します(
|
スーパーバイザー クラスタ上のワークロード ネットワークで使用されるサブネット(ポッド、Ingress、および Egress)をプロキシにすることはできません。
エンドポイント Tanzu Kubernetes クラスタのポッド CIDR およびサービス CIDR は、自動的にプロキシされません。これらを プロキシ サーバを使用するクラスタの例を参照してください。 |
trust |
trust パラメータのセクション マーカー。 |
データを受け入れない。 |
additionalTrustedCAs |
name と data の証明書の配列をそれぞれ受け入れます。 |
データを受け入れない。 |
name |
文字列 | TLS 証明書の名前。 |
data |
文字列 | PEM でエンコードされたパブリック証明書の base64 エンコード文字列。 |
図に示すように、スーパーバイザー クラスタ の [ワークロード ネットワーク] から必要な noProxy
値を取得します。