このトピックでは、vSphere 8 with Tanzu にデプロイする前に、フラット構成ファイルまたは Kubernetes スタイルのオブジェクト仕様を使用して、Tanzu Kubernetes Grid (TKG) のワークロード クラスタを構成する方法について説明します。スタンドアローン管理クラスタを使用して、ワークロード クラスタを vSphere に展開するように構成するには、「スタンドアローン管理クラスタを使用する vSphere の構成ファイル」を参照してください。
構成ファイルとオブジェクト仕様を使用してワークロード クラスタを構成する方法の一般的な情報については、「構成ファイルとオブジェクト仕様」を参照してください。
クラスタの構成ファイルまたはオブジェクト仕様に含まれない構成を必要とする vSphere 固有のワークロード クラスタ機能を使用するには、「vSphere 上のクラスタ」を参照してください。
ワークロード クラスタを vSphere with Tanzu に展開する前に構成する場合、クラスベースのクラスタを構成する際は Kubernetes スタイルのオブジェクト仕様ファイルを作成し、TKC クラスタを構成する際はクラスタ構成ファイルを作成します。これらのファイルのいずれかを tanzu cluster create
の -f
オプションに渡すと、Tanzu CLI はファイルで定義されている構成情報を使用して vSphere アカウントに接続し、クラスタが使用するリソースを作成します。
構成するもの:
上記のクラスタ タイプの詳細については、「ワークロード クラスタ タイプ」を参照してください。
vSphere 8 with Tanzu への展開のためにワークロード クラスタを構成するには、次の手順を実行します。
Cluster
オブジェクト仕様を作成または適用します。vSphere 8 のドキュメントには、作業用のサンプルとして使用できる Cluster
オブジェクト仕様があります。
仕様ファイルの topology
ブロックで、仮想マシンのタイプ、スケール、およびその他の基本的なクラスタ構成を設定します。topology
ブロックの詳細については、以下の「クラスベースのクラスタ オブジェクトとトポロジ構造」および「ClusterClass トポロジ変数」を参照してください。
(オプション)クラスタ インフラストラクチャのコンテナ インターフェイスのワンタイム設定など、Cluster
オブジェクト自体で設定できない属性をカスタマイズするには、「インフラストラクチャのワンタイム設定の構成」を参照してください。
Cluster
オブジェクトでタイプ tanzukubernetescluster
で構成可能なトップレベルの設定は、次のように構成されています。構成可能な variables
については、「ClusterClass トポロジ変数」を参照してください。
spec:
clusterNetwork
apiServerPort
services
cidrBlocks
pods
cidrBlocks
serviceDomain
controlPlaneEndpoint
host
port
topology
class
version
rolloutAfter
controlPlane
metadata
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
workers
machineDeployments
metadata
- class
name
failureDomain
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
variables
name
value
variables
name
value
これらのフィールドは、Cluster
オブジェクト タイプ仕様 cluster_types.go で設定されます。
json:
設定により、各フィールドがオプションであるどうかが分かります。オプションのフィールドには、omitempty
設定があります。Topology
構造体のタイプ仕様には *Workers
が含まれているため、オブジェクト仕様では workers
は topology
の下にインデントされます。- class
および variables
オプションは、Cluster
オブジェクトのクラスタ クラスで定義されます。これは、クラスタの spec.topology.class
値として設定されます。たとえば、vSphere with Tanzu では、tanzukubernetescluster
という名前の ClusterClass
オブジェクトであり、TanzuKubernetesCluster
オブジェクトとは異なります(「ワークロード クラスタ タイプ」を参照)。
構成可能な variables
には、vmClass
、storageClass
、proxy
、nodeLabels
、extensionCert
および「ClusterClass トポロジ変数」に一覧表示されているその他の多くの変数が含まれます。これらの変数は、KubeAdmConfig
や Machine
オブジェクトなど、クラスタ オブジェクトの基盤となるオブジェクトの設定を構成およびオーバーライドします。
tanzukubernetescluster
クラスタ クラス(vSphere with Tanzu 上の TKG のワークロード クラスタのデフォルトの ClusterClass
)は、topology.variables
および topology.workers.machineDeployments.variables
で設定された次の変数をサポートします。ノード プールなど、マシン展開に固有の変数設定はグローバル設定をオーバーライドします。
これらの変数は、KubeAdmConfig
および Machine
オブジェクトで設定された vmClass
、storageClass
、および proxy
設定など、クラスタ オブジェクトの基盤となるオブジェクトの設定を構成およびオーバーライドします。これにより、ユーザーは下位レベルのオブジェクト仕様を編集することなく、Cluster
オブジェクト仕様内でクラスタを完全に構成できます。
clusterEncryptionConfigYaml
controlPlaneVolumes
defaultRegistrySecret
defaultStorageClass
extensionCert
nodePoolLabels
nodePoolTaints
nodePoolVolumes
ntp
proxy
storageClass
storageClasses
TKR_DATA
trust
user
vmClass
vSphere 8 ドキュメント内の次のトピックでは、storageClass
および vmClass
の設定を変更して実行中のクラスタを再構成する方法について説明します。
vSphere 8 の TKC(レガシー)ワークロード クラスタのクラスタ構成ファイルを作成するには、以前の展開の既存の構成ファイルを vSphere with Tanzu にコピーし、それを更新します。また、空のテンプレートを使用してファイルを最初から作成することもできます。
vSphere with Tanzu スーパーバイザーで展開されたワークロード クラスタを構成するには、ストレージ クラス、仮想マシン クラス、サービス ドメイン、名前空間、およびクラスタを作成するために必要なその他の値を定義する変数を設定します。次の表に、TKC ベースのクラスタの構成ファイルに含めることができる変数を示します。また、これらはローカル環境変数として設定することもできます。
必要な変数 | ||
---|---|---|
変数 | 値のタイプまたは例 | 説明 |
INFRASTRUCTURE_PROVIDER |
tkg-service-vsphere |
vSphere with Tanzu の TanzuKubernetesCluster オブジェクトに対しては常に tkg-service-vsphere です。 |
CLUSTER_PLAN |
dev 、prod 、またはカスタム プラン |
ノード数を設定します。 |
CLUSTER_CIDR |
CIDR 範囲 | ポッドに使用する CIDR 範囲。推奨される範囲は 100.96.0.0/11 です。この値は、推奨される範囲が使用できない場合にのみ変更してください。 |
SERVICE_CIDR |
Kubernetes サービスに使用する CIDR 範囲。推奨される範囲は 100.64.0.0/13 です。この値は、推奨される範囲が使用できない場合にのみ変更してください。 |
|
SERVICE_DOMAIN |
ドメイン | 例:my.example.com または cluster.local (DNS がない場合)ノードで FQDN を割り当てる場合は、DNS ルックアップが必要です。 |
CONTROL_PLANE_VM_CLASS |
vSphere with Tanzu の標準仮想マシン クラス(guaranteed-large など)。vSphere with Tanzu ドキュメントの「スーパーバイザーの TKG クラスタでの仮想マシン クラスタの使用」を参照してください。 |
制御プレーン ノードの仮想マシン クラス |
WORKER_VM_CLASS |
ワーカー ノードの仮想マシン クラス | |
オプションの変数 | ||
変数 | 値のタイプまたは例 | 説明 |
CLUSTER_NAME |
文字列 | tanzu cluster create に渡される CLUSTER-NAME 引数によってオーバーライドされます。この名前は、RFC 952 で概説され、RFC 1123 で修正された DNS ホスト名の要件に準拠する必要があり、42 文字以下である必要があります。 Note: すべての名前空間のすべてのワークロード クラスタに一意の名前を指定する必要があります。別の名前空間で使用されているクラスタ名を指定すると、エラーが発生してクラスタの展開が失敗します。 |
NAMESPACE |
名前空間。デフォルトは default です。 |
クラスタを展開する名前空間。スーパーバイザーの名前空間を見つけるには、kubectl get namespaces を実行します。 |
CNI |
antrea または calico 。デフォルトは antrea です。 |
ホストされたワークロード用のコンテナ ネットワーク インターフェイス(Antrea または Calico のいずれか)。 |
CONTROL_PLANE_MACHINE_COUNT |
整数。CONTROL_PLANE_MACHINE_COUNT は奇数にする必要があります。CLUSTER_PLAN で設定されているように、dev の場合のデフォルトは 1 、prod の場合のデフォルトは 3 に設定されます。 |
dev または prod プランのデフォルトよりも多くの制御プレーン ノードを持つワークロード クラスタを展開します。 |
WORKER_MACHINE_COUNT |
dev または prod プランのデフォルトよりも多くのワーカー ノードを持つワークロード クラスタを展開します。 |
|
STORAGE_CLASSES |
空の文字列 "" の場合、クラスタは名前空間内の任意のストレージ クラスを使用するか、kubectl get storageclasses のカンマ区切りの値のリスト(例:"SC-1,SC-2,SC-3" )を使用します。 |
ノードのカスタマイズに使用できるストレージ クラス。 |
DEFAULT_STORAGE_CLASS |
デフォルト値がない場合は空の文字列 "" 、または上記のような CLI からの値。 |
制御プレーンまたはワーカーのデフォルトのストレージ クラス。 |
CONTROL_PLANE_STORAGE_CLASS |
kubectl get storageclasses から返される値 |
制御プレーン ノードのデフォルトのストレージ クラス。 |
WORKER_STORAGE_CLASS |
ワーカー ノードのデフォルトのストレージ クラス。 | |
NODE_POOL_0_NAME |
文字列 | ノード プール名、ラベル、およびテイント。TanzuKubernetesCluster に設定できるノード プールは 1 つだけです。 |
NODE_POOL_0_LABELS |
文字列の JSON リスト。例:["label1", "label2"] |
|
NODE_POOL_0_TAINTS |
キーと値のペア文字列の JSON リスト。例:[{"key1": "value1"}, {"key2": "value2"}] |
上記の変数は、次のいずれかを実行して設定できます。
Tanzu CLI の --file
オプションに渡されるクラスタ構成ファイルにこれらの変数を含めます。例:
CONTROL_PLANE_VM_CLASS: guaranteed-large
コマンド ラインから、コマンド ラインで export
(Linux および macOS)または SET
(Windows) を実行して、ローカル環境変数として設定します。例:
export CONTROL_PLANE_VM_CLASS=guaranteed-large
注ワークロード クラスタに一意のプロキシ設定を構成する場合は、
TKG_HTTP_PROXY
、TKG_HTTPS_PROXY
、およびNO_PROXY
を環境変数として設定してから、Tanzu CLI を使用してクラスタを作成できます。これらの変数は、vSphere with Tanzu の既存のプロキシ構成よりも優先されます。
「ワークロード クラスタの作成」に進みます。ワークロード クラスタを vSphere に展開した後、「ノードの DHCP 予約とエンドポイント DNS レコードの構成(vSphere のみ)」の説明に従って、ノードの DHCP 予約とエンドポイント DNS を構成する必要があります。