Configurazione del pool di nodi per i cluster basati su ClusterClass

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

Proprietà dei pool di nodi nei cluster basati su ClusterClass

Le proprietà che possono essere aggiornate nei pool di nodi nei cluster basati su ClusterClass possono essere suddivise in due tipi:

  • Proprietà dirette delle risorse della topologia di distribuzione della macchina, ad esempio il numero di repliche, che modificano direttamente il dettaglio della distribuzione della macchina.
  • Sostituzioni delle variabili, che si basano sulla definizione delle variabili a livello di 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.

Importante

I comandi node-pool forniti dalla CLI di Tanzu richiedono che le variabili precedenti siano definite in ClusterClass per supportare la creazione e l'aggiornamento dei pool di nodi. Se si utilizza una ClusterClass personalizzata, queste variabili sono obbligatorie come definizioni di variabili di livello superiore in ClusterClass. È ancora possibile ottenere ed eliminare pool di nodi in cluster basati su ClusterClass personalizzata utilizzando la CLI di Tanzu. Esiste un caso speciale in cui tanzu cluster node-pool create e tanzu cluster node-pool update funzioneranno per gli oggetti ClusterClass personalizzati, in particolare se la definizione del pool di nodi passata alla CLI di Tanzu specifica al massimo le variabili replicas, az, name, workerClass e tkrResolver. In questo caso, workerClass deve corrispondere a una definizione workerClass nella ClusterClass personalizzata.

Aggiornare un pool di nodi esistente con 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.

Creare un nuovo pool di nodi con 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.

Creazione di un nuovo pool di nodi mediante una distribuzione di macchine di base

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

Creazione di un nuovo pool di nodi senza utilizzare una distribuzione di macchine di base

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
check-circle-line exclamation-circle-line close-line
Scroll to top icon