Esistono differenze nel comportamento quando si utilizzano i comandi tanzu cluster node-pool
rispetto a un cluster che utilizza una definizione di ClusterClass
rispetto all'utilizzo di altri comandi tanzu
. L'unica cosa in comune in tutte queste API quando si utilizza un cluster basato su ClusterClass
è la necessità di aggiornare il cluster, in particolare la topologia del cluster.
tanzu cluster node-pool delete
Il comando tanzu cluster node-pool delete
è la modifica più semplice. La risorsa cluster viene aggiornata per rimuovere la definizione della distribuzione della macchina con il nome del pool di nodi passato all'API di eliminazione. L'API impedisce comunque l'eliminazione del pool di nodi finale nel cluster.
tanzu cluster node-pool delete tkg-wc-vsphere -n md–0
tanzu cluster node-pool list
Il comando tanzu cluster node-pool list
recupera le risorse MachineDeployment
come nel caso del cluster basato sul piano e associa queste risorse alle distribuzioni delle macchine nella topologia del cluster. Ciò consente al comando tanzu cluster node-pool list
di restituire le stesse risorse MachineDeployment
con nomi aggiornati in modo che corrisponda alle distribuzioni delle macchine definite nella topologia del cluster.
tanzu cluster node-pool list tkg-wc-vsphere
NAME NAMESPACE PHASE REPLICAS READY UPDATED UNAVAILABLE
md-0 default Ready 1 1 1 0
Le proprietà che possono essere aggiornate nei pool di nodi nei cluster basati su ClusterClass
possono essere suddivise in due tipi:
ClusterClass
. Quando si distribuisce un cluster basato su una ClusterClass
, la definizione del cluster deve specificare un numero di queste variabili, che si applicano a tutte le distribuzioni di macchine per impostazione predefinita. La topologia di distribuzione della macchina consente di sovrascrivere queste variabili in base alla distribuzione delle macchine.L'origine definitiva per le proprietà che possono essere modificate sono gli oggetti ClusterClass
stessi. Gli oggetti ClusterClass
TKG definiscono tutti una variabile, worker
, che contiene le proprietà della macchina virtuale del nodo di lavoro. Sono inclusi instanceType
e vmSize
rispettivamente per AWS e Azure. La versione vSphere include le proprietà per diskGiB
, memoryMiB
e numCPU
. TKG con supervisore definisce le variabili di livello superiore per vmClass
e storageClass
, nonché un array per nodePoolVolumes
per la personalizzazione dei nodi di lavoro. TKG su vSphere definisce anche una variabile vcenter
per l'aggiornamento delle proprietà relative all'istanza di vCenter Server.
Tutti gli oggetti ClusterClass
TKG definiscono una variabile nodePoolLabels
che specifica le etichette dei nodi da applicare ai nodi di lavoro.
ImportanteI comandi
node-pool
forniti dalla CLI di Tanzu richiedono che le variabili precedenti siano definite inClusterClass
per supportare la creazione e l'aggiornamento dei pool di nodi. Se si utilizza unaClusterClass
personalizzata, queste variabili sono obbligatorie come definizioni di variabili di livello superiore inClusterClass
. È ancora possibile ottenere ed eliminare pool di nodi in cluster basati suClusterClass
personalizzata utilizzando la CLI di Tanzu. Esiste un caso speciale in cuitanzu cluster node-pool create
etanzu cluster node-pool update
funzioneranno per gli oggettiClusterClass
personalizzati, in particolare se la definizione del pool di nodi passata alla CLI di Tanzu specifica al massimo le variabilireplicas
,az
,name
,workerClass
etkrResolver
. In questo caso,workerClass
deve corrispondere a una definizioneworkerClass
nellaClusterClass
personalizzata.
tanzu cluster node-pool set
Quando il comando tanzu cluster node-pool set
viene chiamato utilizzando il nome di un pool di nodi esistente, l'aggiornamento modificherà solo il numero di repliche e le etichette del pool di nodi denominato, se specificato. Tutte le altre opzioni fornite vengono ignorate. In particolare, la topologia del cluster viene aggiornata con un nuovo conteggio di repliche e una sostituzione della variabile nodePoolLabels
se vengono forniti questi valori.
tanzu cluster node-pool set
La creazione dei pool di nodi può seguire uno di questi due percorsi. È possibile fornire al comando tanzu cluster node-pool set
una distribuzione della macchina di base come punto di partenza per il nuovo pool di nodi. Una copia completa della distribuzione della macchina di base denominata agisce come una base in cui le proprietà fornite dall'utente vengono stratificate. In generale, questo significa che tutte le sostituzioni di variabili della distribuzione della macchina copiata vengono aggiornate con nuovi valori forniti. È diverso dal caso in cui non viene fornita una distribuzione della macchina di base. In questo caso, le sostituzioni di variabili vengono copiate dalle definizioni delle variabili globali definite nella topologia del cluster e quindi i valori forniti dall'utente vengono stratificati sopra di esse. Inoltre, quando non si fornisce una distribuzione di macchine di base, è necessario fornire una definizione di workerClass
e tkrResolver
. Gli oggetti ClusterClass
TKG hanno una classe tkg-worker
definita per impostazione predefinita e devono essere utilizzati a meno che non sia stata aggiunta la definizione di classe worker dell'utente. tkrResolver
è il valore dell'annotazione tkr-resolver
.
Per utilizzare una distribuzione della macchina di base per creare un nuovo pool di nodi, eseguire il comando seguente:
tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml –-base-machine-deployment md-0
Con i seguenti contenuti nel file node-pool.yml
:
name: np-1
replicas: 1
nodeMachineType: t3.large
Per creare un nuovo pool di nodi senza utilizzare una distribuzione della macchina di base, eseguire il comando seguente:
tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml
Con i seguenti contenuti nel file node-pool.yml
:
name: np-1
replicas: 1
nodeMachineType: t3.large
workerClass: tkg-worker
tkrResolver: os-name=ubuntu,os-arch=amd64