ClusterClass ベースのクラスタのノード プール構成

ClusterClass 定義を使用するクラスタに対して tanzu cluster node-pool コマンドを使用する場合の動作は、他の tanzu コマンドを使用する場合の動作とは異なります。ClusterClass ベースのクラスタに対して動作する場合、これらすべての API の共通点の 1 つは、クラスタ、特にクラスタ トポロジを更新する必要があることです。

tanzu cluster node-pool delete

tanzu cluster node-pool delete コマンドは最も簡単な変更です。クラスタ リソースが更新され、削除 API に渡されるノード プールの名前を使用するマシン展開の定義が削除されます。API は、クラスタ内の最後のノード プールの削除を引き続き禁止します。

tanzu cluster node-pool delete tkg-wc-vsphere -n md–0

tanzu cluster node-pool list

tanzu cluster node-pool list コマンドは MachineDeployment リソースをプランベースのクラスタの場合と同じ方法で取得し、これらのリソースをクラスタ トポロジ内のマシン展開と照合します。これにより、tanzu cluster node-pool list コマンドは、クラスター トポロジで定義されているマシンの展開に一致するように、名前が更新された同じ MachineDeployment リソースを返すことができます。

tanzu cluster node-pool list tkg-wc-vsphere
  NAME  NAMESPACE  PHASE      REPLICAS  READY  UPDATED  UNAVAILABLE
  md-0  default    Ready      1         1      1        0

ClusterClass ベースのクラスタ内のノード プールのプロパティ

ClusterClass ベースのクラスタのノード プールで更新できるプロパティは、次の 2 つのタイプに分類できます。

  • マシン展開のトポロジを直接変更する、マシン展開トポロジ リソースの直接プロパティ(レプリカ数など)。
  • ClusterClass レベルでの変数の定義に依存する変数オーバーライド。ClusterClass に基づいてクラスタを展開する場合、クラスタ定義でこれらの変数の数を指定する必要があります。これは、デフォルトですべてのマシン展開に適用されます。マシン展開トポロジを使用すると、これらの変数をマシンの展開単位でオーバーライドできます。

変更できるプロパティの最終的なソースは、ClusterClass オブジェクト自体です。TKG の ClusterClass オブジェクトはすべて、ワーカー ノード仮想マシンのプロパティを含む変数 worker を定義します。これには、AWS と Azure の instanceTypevmSize がそれぞれ含まれます。vSphere バージョンには、diskGiBmemoryMiB、および numCPU のプロパティが含まれています。スーパーバイザーを使用する TKG は、ワーカー ノードをカスタマイズするための vmClass および storageClass の最上位レベルの変数、および nodePoolVolumes の配列を定義します。vSphere 上の TKG は、vCenter Server インスタンスに関連するプロパティを更新するための vcenter 変数も定義します。

TKG のすべての ClusterClass オブジェクトは、ワーカー ノードに適用するノード ラベルを指定する nodePoolLabels 変数を定義します。

重要

Tanzu CLI によって提供される node-pool コマンドでは、ノード プールの作成と更新をサポートするために ClusterClass で上記の変数を定義する必要があります。カスタム ClusterClass を使用する場合、これらの変数は、ClusterClass の最上位の変数定義として必要です。Tanzu CLI を使用して、カスタム ClusterClass ベースのクラスタでノード プールを取得および削除することができます。tanzu cluster node-pool createtanzu cluster node-pool update がカスタム ClusterClass オブジェクトに対して機能する特別なケースがあります。これは特に、Tanzu CLI に渡されるノード プール定義で定義される変数が多くても replicasaznameworkerClass、および tkrResolver の場合です。この場合、workerClass は、カスタム ClusterClass 内の workerClass 定義と一致する必要があります。

tanzu cluster node-pool set を使用した既存のノード プールの更新

既存のノード プールの名前を使用して tanzu cluster node-pool set コマンドを呼び出すと、更新では、指定されたノード プールのレプリカ数とラベル(指定されている場合)のみが変更されます。それ以外の指定されたオプションは無視されます。特に、クラスタのトポロジが新しいレプリカ数と nodePoolLabels 変数オーバーライドで更新されます(これらの値が指定されている場合)。

tanzu cluster node-pool set を使用した新しいノード プールの作成

ノード プールの作成は、2 つのパスのいずれかに従って実行できます。新しいノード プールの開始点として使用されるベース マシン展開を、tanzu cluster node-pool set コマンドに提供できます。指定されたベース マシン展開のディープ コピーは、ユーザーが指定するプロパティを階層化する基盤として機能します。通常、これは、コピーされたマシン展開のすべての変数オーバーライドが、指定した新しい値で更新されることを意味します。これは、ベース マシン展開が指定されていない場合とは異なります。この場合、変数オーバーライドはクラスタ トポロジで定義されているグローバル変数定義からコピーされ、それに対してユーザーが指定した値が階層化されます。また、ベース マシン展開を指定しない場合は、workerClass および tkrResolver 定義を指定する必要があります。TKG ClusterClass オブジェクトにはデフォルトで tkg-worker クラスが定義されており、ユーザーが独自のワーカー クラス定義を追加していない限りこのクラスが使用されます。tkrResolver は、tkr-resolver 注釈の値です。

ベース マシン展開を使用した新しいノード プールの作成

ベース マシン展開を使用して新しいノード プールを作成するには、次のコマンドを実行します。

tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml –-base-machine-deployment md-0

node-pool.yml ファイルに次の内容が含まれます。

name: np-1
replicas: 1
nodeMachineType: t3.large

ベース マシン展開を使用しない新しいノード プールの作成

ベース マシン展開を使用せずに新しいノード プールを作成するには、次のコマンドを実行します。

tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml

node-pool.yml ファイルに次の内容が含まれます。

name: np-1
replicas: 1
nodeMachineType: t3.large
workerClass: tkg-worker
tkrResolver: os-name=ubuntu,os-arch=amd64
check-circle-line exclamation-circle-line close-line
Scroll to top icon