Un node pool è un gruppo di nodi all'interno di un cluster Kubernetes che condividono la stessa configurazione. I node pool utilizzano una specifica NodePool
. Ogni nodo nel pool
ha un'etichetta nodo Kubernetes il cui valore è il nome delpool di nodil.
Per impostazione predefinita, tutti i nuovi pool di nodi eseguono la stessa versione di Kubernetes del piano di controllo.
Quando crei un cluster utente, il numero e il tipo di nodi che specifichi creano il primo pool di nodi del cluster. Puoi aggiungere al cluster ulteriori pool di nodi di dimensioni e tipi diversi. Tutti i nodi in un dato pool di nodi sono identici tra loro.
I pool di nodi personalizzati sono utili per la pianificazione di pod che richiedono più risorse rispetto ad altri, ad esempio più memoria o spazio su disco locale. Puoi utilizzare i taint dei nodi se hai bisogno di un maggiore controllo sulla pianificazione dei pod.
Puoi creare ed eliminare i pool di nodi singolarmente senza influire sull'intero cluster. Non puoi configurare un singolo nodo in un pool di nodi. Qualsiasi modifica alla configurazione influisce su tutti i nodi del pool di nodi.
Puoi ridimensionare i node pool in un cluster aumentando o diminuendo le dimensioni del pool. La riduzione delle dimensioni di un pool di nodi è un processo automatizzato in cui diminuisci le dimensioni del pool e il sistema GDC svuota ed espelle automaticamente un nodo arbitrario. Non puoi selezionare un nodo specifico da rimuovere quando riduci le dimensioni di un pool di nodi.
Prima di iniziare
Per gestire i pool di nodi in un cluster utente, devi disporre del ruolo Amministratore cluster utente (ruolo user-cluster-admin
).
Aggiungi un pool di nodi
Quando crei un cluster utente dalla console GDC, puoi personalizzare il pool di nodi predefinito e creare pool di nodi aggiuntivi prima dell'inizializzazione della creazione del cluster. Se devi aggiungere un pool di nodi a un cluster utente esistente, completa i seguenti passaggi:
Console
- Nel menu di navigazione, seleziona Cluster.
- Fai clic sul cluster nell'elenco dei cluster. Viene visualizzata la pagina Dettagli cluster.
- Seleziona Node pool > Aggiungi node pool.
- Assegna un nome al pool di nodi. Non puoi modificare il nome dopo aver creato il pool di nodi.
- Specifica il numero di nodi worker da creare nel pool di nodi.
- Seleziona la classe di macchine più adatta ai requisiti del tuo workload. Le
classi di macchine vengono visualizzate nelle seguenti impostazioni:
- Tipo di macchina
- vCPU
- Memoria
- (Facoltativo) Aggiungi etichette di coppie chiave-valore Kubernetes per organizzare le risorse del pool di nodi.
- Fai clic su Salva.
API
Apri la specifica della risorsa personalizzata
Cluster
con l'interfaccia a riga di comandokubectl
utilizzando l'editor interattivo:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Sostituisci quanto segue:
USER_CLUSTER_NAME
: il nome del cluster utente.ADMIN_CLUSTER_KUBECONFIG
: il percorso del file kubeconfig del cluster di amministrazione.
Aggiungi una nuova voce nella sezione
nodePools
:nodePools: ... - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS
Sostituisci quanto segue:
MACHINE_TYPE
: il tipo di macchina per i nodi worker delpool di nodil. Visualizza i tipi di macchina disponibili per ciò che è disponibile per la configurazione.NODE_POOL_NAME
: il nome del pool di nodi.NUMBER_OF_WORKER_NODES
: il numero di nodi di lavoro di cui eseguire il provisioning nelpool di nodil.TAINTS
: le incompatibilità da applicare ai nodi di questo pool di nodi. Questo è un campo facoltativo.LABELS
: le etichette da applicare ai nodi di questopool di nodil. Contiene un elenco di coppie chiave-valore. Questo è un campo facoltativo.
Salva il file ed esci dall'editor.
Visualizza i node pool
Per visualizzare i node pool esistenti in un cluster utente, completa i seguenti passaggi:
Console
- Nel menu di navigazione, seleziona Cluster.
- Fai clic sul cluster nell'elenco dei cluster. Viene visualizzata la pagina Dettagli cluster.
- Seleziona Pool di nodi.
Viene visualizzato l'elenco dei pool di nodi in esecuzione nel cluster. Da questa pagina puoi gestire i pool di nodi del cluster.
API
Visualizza i node pool di un cluster utente specifico:
kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \ jq .status.workerNodePoolStatuses
L'output è simile al seguente:
[ { "conditions": [ { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "NodepoolReady", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "ReconciliationCompleted", "status": "False", "type": "Reconciling" } ], "name": "worker-node-pool", "readyNodes": 3, "readyTimestamp": "2023-08-31T18:59:46Z", "reconcilingNodes": 0, "stalledNodes": 0, "unknownNodes": 0 } ]
Elimina un node pool
L'eliminazione di un pool di nodi comporta l'eliminazione dei nodi e delle relative route. Questi nodi rimuovono e ripianificano tutti i pod in esecuzione. Se i pod hanno selettori di nodi specifici, potrebbero rimanere in una condizione non pianificabile se nessun altro nodo del cluster soddisfa i criteri.
Assicurati di avere almeno tre nodi di lavoro prima di eliminare un pool di nodi per assicurarti che il cluster disponga di spazio di calcolo sufficiente per funzionare in modo efficace.
Per eliminare un pool di nodi:
Console
Nel menu di navigazione, seleziona Cluster.
Fai clic sul cluster che ospita il pool di nodi che vuoi eliminare.
Seleziona Pool di nodi.
Fai clic su delete Elimina accanto al pool di nodi da eliminare.
API
Apri la specifica della risorsa personalizzata
Cluster
con l'interfaccia a riga di comandokubectl
utilizzando l'editor interattivo:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Sostituisci quanto segue:
USER_CLUSTER_NAME
: il nome del cluster utente.ADMIN_CLUSTER_KUBECONFIG
: il percorso del file kubeconfig del cluster di amministrazione.
Rimuovi la voce pool di nodi dalla sezione
nodePools
. Ad esempio, nello snippet seguente devi rimuovere i campimachineTypeName
,name
enodeCount
:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3
Assicurati di rimuovere tutti i campi per il pool di nodi che stai eliminando.
Salva il file ed esci dall'editor.
Tipi di macchine dei nodi worker
Quando crei un cluster utente nell'appliance air-gap di Google Distributed Cloud (GDC), crei pool di nodi responsabili dell'esecuzione dei carichi di lavoro dei container nel cluster. Esegui il provisioning dei nodi in base ai requisiti del carico di lavoro dei container e puoi aggiornarli man mano che i requisiti cambiano.
GDC fornisce tipi di macchina predefiniti per i nodi worker selezionabili quando aggiungi un pool di nodi.
Tipi di macchine disponibili
GDC definisce i tipi di macchine con alcuni parametri
per un nodo del cluster utente, tra cui CPU, memoria e GPU.
GDC offre vari tipi di macchine per scopi diversi.
Ad esempio, i cluster utente utilizzano n2-standard-2-gdc
per i carichi di lavoro dei container di uso generale. Puoi anche trovare tipi di macchine ottimizzati per la memoria, ad esempio n2-highcpu-8-gdc
. Se prevedi di eseguire container di deep learning, devi eseguire il provisioning di macchine GPU, ad esempio a2-highgpu-1g-gdc
.
Di seguito è riportato un elenco di tutti i tipi di macchine predefinite di GDC disponibili per i nodi worker del cluster utente:
Nome | vCPU | Memoria | Conteggio GPU |
---|---|---|---|
n2-standard-2-gdc | 2 | 8G | N/D |
n2-standard-4-gdc | 4 | 16G | N/D |
n2-highmem-4-gdc | 4 | 32G | N/D |
n2-highcpu-8-gdc | 8 | 8G | N/D |
n2-standard-8-gdc | 8 | 32G | N/D |
n2-highmem-8-gdc | 8 | 64G | N/D |
a2-highgpu-1g-gdc | 12 | 85G | 1 |
a2-ultragpu-1g-gdc | 12 | 170G | 1 |