In un cluster utente, puoi creare un gruppo di nodi tutti con la stessa configurazione compilando la sezione nodePools
del file di configurazione del cluster.
Puoi quindi gestire il pool di nodi senza influire sugli altri nodi nel
cluster.
Scopri di più sui pool di nodi.
Prima di iniziare
L'eliminazione di un pool di nodi comporta la rimozione immediata dei nodi del pool, indipendentemente dal fatto che tali nodi stiano eseguendo o meno carichi di lavoro.
Puoi aggiornare il campo replicas
di una sezione nodePool
senza interrompere i carichi di lavoro. Se aggiorni gli altri campi, i nodi nel pool vengono eliminati e ricreati.
Se vuoi collegare i tag a tutte le VM in un pool di nodi, il tuo account utente vCenter deve avere questi privilegi di codifica vSphere:
- Tag vSphere.Assegna o annulla l'assegnazione del tag vSphere
- Codifica vSphere.Assegna o annulla l'assegnazione di tag vSphere sull'oggetto (vSphere 7)
Quando aggiorni una sezione nodePool
, Cluster Anthos su VMware crea un nuovo nodo e poi elimina un vecchio nodo. Il processo si ripete finché tutti i nodi precedenti non sono stati sostituiti con nuovi. Ciò significa che il cluster deve avere un
indirizzo IP aggiuntivo da utilizzare durante l'aggiornamento.
Supponi che un pool di nodi abbia N nodi alla fine di un aggiornamento. Devi avere almeno N indirizzi N + 1 disponibili per i nodi nel pool. Ciò significa che se stai ridimensionando un cluster aggiungendo nodi a uno o più pool, devi avere almeno un indirizzo IP in più rispetto al numero totale di nodi che saranno in tutti i pool di nodi del cluster alla fine del ridimensionamento. Per ulteriori informazioni, consulta la sezione Verificare la disponibilità di indirizzi IP sufficienti.
Compilazione della sezione nodePools
del file di configurazione del cluster
Nel
file di configurazione del cluster utente,
compila la sezione
nodePools
.
Per ogni pool di nodi, devi specificare i seguenti campi:
nodePools.[i].name
nodePools[i].cpus
nodePools.[i].memoryMB
nodePools.[i].replicas
I seguenti campi sono facoltativi:
nodePools[i].labels
nodePools[i].taints
nodePools[i].bootDiskSizeGB
nodePools[i].osImageType
nodePools[i].vsphere.datastore
nodePools[i].vsphere.tags
Creazione di pool di nodi in un nuovo cluster
Nel file di configurazione del cluster utente, compila la sezione nodePools
e
crea il cluster:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Sostituisci quanto segue:
ADMIN_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster di amministrazione
USER_CLUSTER_CONFIG: il file di configurazione del cluster utente
Aggiornamento dei pool di nodi in un cluster esistente
Nel file di configurazione del cluster utente, modifica la sezione nodePools
, quindi
aggiorna il cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Verifica delle modifiche
Per verificare che i pool di nodi siano stati creati o aggiornati come previsto, controlla i nodi del cluster:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG get nodes -o wide
Se devi annullare le modifiche, modifica il file di configurazione del cluster ed esegui gkectl update cluster
.
Eliminazione di un pool di nodi
Per eliminare un pool di nodi da un cluster utente:
Rimuovine la definizione dalla sezione
nodePools
del file di configurazione del cluster utente.Assicurati che non siano in esecuzione carichi di lavoro sui nodi interessati.
Aggiorna il cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Esempi
Nella seguente configurazione di esempio, sono presenti quattro pool di nodi, ognuno con attributi diversi:
pool-1
: sono specificati solo gli attributi minimi obbligatoripool-2
: includevsphere.datastore
evsphere.tags
pool-3
: includetaints
elabels
pool-4
: includeosImageType
ebootDiskSizeGB
nodePools:
- name: pool-1
cpus: 4
memoryMB: 8192
replicas: 5
- name: pool-2
cpus: 8
memoryMB: 16384
replicas: 3
vsphere:
datastore: my_datastore
tags:
- category: "purpose"
name: "testing"
- name: pool-3
cpus: 4
memoryMB: 8192
replicas: 5
taints:
- key: "example-key"
effect: NoSchedule
labels:
environment: production
app: nginx
- name: pool-4
cpus: 4
memoryMB: 8192
replicas: 5
osImageType: cos
bootDiskSizeGB: 40
Risolvere i problemi
In generale, il comando
gkectl update cluster
fornisce specifiche quando non riesce. Se il comando ha avuto esito positivo e non vedi i nodi, puoi risolvere il problema con la guida Diagnosi dei problemi del cluster.È possibile che non siano disponibili risorse cluster sufficienti, come la mancanza di indirizzi IP disponibili durante la creazione o l'aggiornamento del pool di nodi. Per ulteriori dettagli sulla verifica della disponibilità di indirizzi IP, consulta l'argomento Ridimensionamento di un cluster utente.
Puoi anche consultare la guida generale per la risoluzione dei problemi.
Non sarà possibile procedere oltre il giorno
Creating node MachineDeployment(s) in user cluster…
.La creazione o l'aggiornamento dei pool di nodi nel cluster utente può richiedere del tempo. Tuttavia, se il tempo di attesa è estremamente lungo e sospetti che qualcosa non sia andato a buon fine, puoi eseguire i seguenti comandi:
- Esegui
kubectl get nodes
per ottenere lo stato dei nodi. - Per tutti i nodi non pronti, esegui
kubectl describe node NODE_NAME
per ottenere i dettagli.
- Esegui