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
ベースのクラスタのノード プールで更新できるプロパティは、次の 2 つのタイプに分類できます。
ClusterClass
レベルでの変数の定義に依存する変数オーバーライド。ClusterClass
に基づいてクラスタを展開する場合、クラスタ定義でこれらの変数の数を指定する必要があります。これは、デフォルトですべてのマシン展開に適用されます。マシン展開トポロジを使用すると、これらの変数をマシンの展開単位でオーバーライドできます。変更できるプロパティの最終的なソースは、ClusterClass
オブジェクト自体です。TKG の ClusterClass
オブジェクトはすべて、ワーカー ノード仮想マシンのプロパティを含む変数 worker
を定義します。これには、AWS と Azure の instanceType
と vmSize
がそれぞれ含まれます。vSphere バージョンには、diskGiB
、memoryMiB
、および 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 create
とtanzu cluster node-pool update
がカスタムClusterClass
オブジェクトに対して機能する特別なケースがあります。これは特に、Tanzu CLI に渡されるノード プール定義で定義される変数が多くてもreplicas
、az
、name
、workerClass
、および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