Quando crei un cluster Kubernetes con air gap Google Distributed Cloud (GDC), il numero e il tipo di nodi che specifichi creano il primo pool di nodi del cluster. Puoi eseguire le seguenti attività del pool di nodi per un cluster esistente man mano che cambiano i requisiti di calcolo:
Aggiungi un nuovo pool di nodi: aggiungi nuovi pool di nodi man mano che aumenta la domanda per i carichi di lavoro del cluster.
Visualizza un pool di nodi: visualizza le caratteristiche e lo stato dei pool di nodi esistenti.
Ridimensiona un pool di nodi: aumenta o riduci manualmente i pool di nodi per adattarli alle fluttuazioni del traffico dei carichi di lavoro.
Elimina un pool di nodi: rimuovi i pool di nodi se la domanda per i carichi di lavoro del cluster diminuisce o se vuoi eliminare i tipi di macchine che non sono più prudenti per le operazioni dei container.
Per saperne di più sui pool di nodi in un cluster, consulta Informazioni sui nodi.
Questo documento è destinato agli sviluppatori di applicazioni del gruppo di operatori di applicazioni e agli amministratori IT del gruppo di amministratori della piattaforma responsabili della gestione dei cluster Kubernetes all'interno della propria organizzazione. Per saperne di più, consulta Pubblico per la documentazione air-gapped di GDC.
Prima di iniziare
Per completare le attività descritte in questo documento, devi disporre delle seguenti risorse e dei seguenti ruoli:
Per visualizzare e gestire i pool di nodi in un cluster Kubernetes condiviso, chiedi all'amministratore IAM dell'organizzazione di concederti i seguenti ruoli:
- Amministratore del cluster utente (
user-cluster-admin) - Visualizzatore dei nodi del cluster utente (
user-cluster-node-viewer)
Questi ruoli non sono associati a uno spazio dei nomi.
- Amministratore del cluster utente (
Per visualizzare e gestire i pool di nodi in un cluster Kubernetes standard, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore del cluster standard (
standard-cluster-admin). Questo ruolo è associato allo spazio dei nomi del progetto.Per eseguire comandi su un cluster Kubernetes, assicurati di disporre delle seguenti risorse:
Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.
Accedi e genera il file kubeconfig per il cluster Kubernetes se non ne hai uno.
Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire
KUBERNETES_CLUSTER_KUBECONFIGin queste istruzioni.
Aggiungi un pool di nodi
Per aggiungere un pool di nodi a un cluster Kubernetes esistente, segui questi passaggi:
Console
- Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
- Fai clic sul cluster nell'elenco dei cluster. Viene visualizzata la pagina Dettagli cluster.
- Seleziona Pool di nodi > Aggiungi pool di nodi.
- 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 carico di lavoro. Le classi di macchine vengono visualizzate nelle seguenti impostazioni:
- Tipo di macchina
- vCPU
- Memoria
- Fai clic su Salva.
API
Apri la specifica della risorsa personalizzata
Clustercon l'interfaccia a riga di comandokubectlutilizzando l'editor interattivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSostituisci quanto segue:
KUBERNETES_CLUSTER_NAME: il nome del cluster.KUBERNETES_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale in cui è ospitato il cluster Kubernetes. Se non hai ancora generato un file kubeconfig per il server API nella tua zona di destinazione, consulta Accedi per i dettagli.
Aggiungi una nuova voce nella sezione
nodePools:nodePools: # Several lines of code are omitted here. - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELS acceleratorOptions: gpuPartitionScheme: GPU_PARTITION_SCHEMESostituisci quanto segue:
MACHINE_TYPE: il tipo di macchina per i nodi worker del pool di nodi. Visualizza i tipi di macchine disponibili per la configurazione.NODE_POOL_NAME: il nome del pool di nodi.NUMBER_OF_WORKER_NODES: il numero di nodi worker di cui eseguire il provisioning nel pool di nodi.TAINTS: le incompatibilità da applicare ai nodi di questo pool di nodi. Questo è un campo facoltativo.LABELS: le etichette da applicare ai nodi di questo pool di nodi. Contiene un elenco di coppie chiave-valore. Questo è un campo facoltativo.GPU_PARTITION_SCHEME: lo schema di partizionamento della GPU, se esegui carichi di lavoro GPU. Ad esempio,mixed-2. Se questo campo non è impostato, la GPU non viene partizionata. Per i profili Multi-Instance GPU (MIG) disponibili, consulta Profili MIG supportati.
Salva il file ed esci dall'editor.
Visualizza i pool di nodi
Per visualizzare i pool di nodi esistenti in un cluster Kubernetes, segui questi passaggi:
Console
- Nel menu di navigazione, seleziona Kubernetes Engine > 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 pool di nodi di un cluster Kubernetes specifico:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ -o json --kubeconfig MANAGEMENT_API_SERVER | \ jq .status.workerNodePoolStatusesSostituisci quanto segue:
KUBERNETES_CLUSTER_NAME: il nome del cluster.KUBERNETES_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.
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 } ]
Ridimensiona i pool di nodi
Puoi ridimensionare manualmente i pool di nodi in un cluster Kubernetes aumentando o riducendo le dimensioni del pool. Quando riduci le dimensioni di un pool di nodi, non puoi selezionare un nodo specifico da rimuovere.
Per scalare un pool di nodi in un cluster esistente, segui questi passaggi:
Console
- Nella dashboard, seleziona il progetto in cui esiste il cluster che intendi modificare.
- Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
- Seleziona il nome del cluster a cui è associato il pool di nodi. Viene visualizzata la pagina Dettagli cluster.
- Fai clic sulla scheda Pool di nodi.
- Seleziona l'icona edit Modifica per il pool di nodi che vuoi ridimensionare. Viene visualizzato il prompt Modifica pool di nodi.
Aggiorna il campo Numero di nodi in modo che rifletta la nuova quantità di nodi richiesta nel pool di nodi. Puoi aumentare o diminuire il numero di nodi in base ai requisiti del carico di lavoro.
Fai clic su Salva.
Torna alla scheda Pool di nodi del cluster e verifica che il pool di nodi ridimensionato abbia lo stato
Readye il numero corretto di nodi. Potrebbero essere necessari alcuni minuti prima che il pool di nodi venga scalato in base alle tue specifiche.
API
Apri la specifica della risorsa personalizzata
Clustercon l'interfaccia a riga di comando kubectl utilizzando l'editor interattivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSostituisci quanto segue:
KUBERNETES_CLUSTER_NAME: il nome del cluster che ospita il pool di nodi.KUBERNETES_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale in cui è ospitato il cluster Kubernetes. Se non hai generato un file kubeconfig per il server API nella zona di destinazione, consulta Risorse del server API di gestione zonale.
Aggiorna il campo
nodeCountper il pool di nodi da ridimensionare:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODESSostituisci
NUMBER_OF_WORKER_NODEScon il numero aggiornato di nodi worker di cui eseguire il provisioning nel pool di nodi.Salva il file ed esci dall'editor.
Verifica che il ridimensionamento dei nodi sia stato completato controllando la configurazione del pool di nodi:
kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE -o json \ --kubeconfig MANAGEMENT_API_SERVER | jq .status.workerNodePoolStatusesVerifica che il numero
readyNodesrifletta la quantità di nodi impostata per il pool di nodi. Potrebbero essere necessari alcuni minuti prima che il pool di nodi venga scalato in base alle tue specifiche.
Elimina un pool di nodi
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 nel cluster soddisfa i criteri.
Prima di eliminare un pool di nodi, assicurati di avere almeno tre nodi worker per garantire che il cluster abbia spazio di calcolo sufficiente per essere eseguito in modo efficace.
Per eliminare un pool di nodi, segui questi passaggi:
Console
Nel menu di navigazione, seleziona Kubernetes Engine > 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
Clustercon l'interfaccia a riga di comando kubectl utilizzando l'editor interattivo:kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig MANAGEMENT_API_SERVERSostituisci quanto segue:
KUBERNETES_CLUSTER_NAME: il nome del cluster.KUBERNETES_CLUSTER_NAMESPACE: lo spazio dei nomi del cluster. Per i cluster condivisi, utilizza lo spazio dei nomiplatform. Per i cluster standard, utilizza lo spazio dei nomi del progetto del cluster.MANAGEMENT_API_SERVER: il percorso kubeconfig del server API zonale in cui è ospitato il cluster Kubernetes. Se non hai generato un file kubeconfig per il server API nella zona di destinazione, consulta Risorse del server API di gestione zonale.
Rimuovi la voce del pool di nodi dalla sezione
nodePools. Ad esempio, nel seguente snippet devi rimuovere i campimachineTypeName,nameenodeCount:nodePools: # Several lines of code are omitted here. - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3Assicurati di rimuovere tutti i campi per il pool di nodi che stai eliminando.
Salva il file ed esci dall'editor.
Passaggi successivi
- Gestisci i cluster Kubernetes
- Carichi di lavoro con container in GDC
- Isola i carichi di lavoro con container