Quando crei un cluster Kubernetes air-gapped di 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 della documentazione GDC con air gap.
Prima di iniziare
Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie e preparare l'ambiente.
Richiedi ruoli IAM
Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per gestire i pool di nodi in un cluster Kubernetes. I ruoli richiesti dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito a livello di organizzazione o di un cluster standard con ambito a livello di progetto. Per saperne di più, consulta Configurazione dei cluster Kubernetes.
Ruoli del cluster condiviso
Per creare, eliminare, modificare o visualizzare i pool di nodi di un cluster condiviso, contatta l'amministratore IAM dell'organizzazione per richiedere il ruolo Amministratore del cluster utente (user-cluster-admin). Questo ruolo non è associato a uno spazio dei nomi.
Ruoli del cluster standard
Contatta l'amministratore IAM del progetto per richiedere i seguenti ruoli:
Amministratore del cluster standard (
standard-cluster-admin): crea, elimina, modifica o visualizza i pool di nodi di un cluster standard.Sviluppatore del cluster (
cluster-developer): crea, elimina, modifica o visualizza un cluster standard. Questo ruolo è necessario per visualizzare i dettagli del pool di nodi del cluster dalla console GDC.
Questi ruoli sono associati allo spazio dei nomi del progetto.
Prepara l'ambiente
Per eseguire comandi su un cluster Kubernetes utilizzando l'API, 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.
Utilizza il nome del cluster Kubernetes per sostituire
KUBERNETES_CLUSTER_NAMEin queste istruzioni.Accedi e genera il file kubeconfig del server API di gestione per il cluster Kubernetes.
Utilizza il percorso kubeconfig del server API di gestione per sostituire
MANAGEMENT_API_SERVERin queste istruzioni.
Aggiungi un pool di nodi
Per aggiungere un pool di nodi a un cluster Kubernetes esistente, segui questi passaggi:
Console
Nel selettore dei progetti, seleziona il progetto o l'organizzazione.
I cluster standard hanno ambito a livello di progetto e i cluster condivisi hanno ambito a livello di organizzazione. Seleziona l'ambito corretto per visualizzare il tipo di cluster Kubernetes appropriato.
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.
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. La GPU non viene partizionata se questo campo non è impostato. Per i profili GPU multi-istanza (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 selettore dei progetti, seleziona il progetto o l'organizzazione.
I cluster standard hanno ambito a livello di progetto e i cluster condivisi hanno ambito a livello di organizzazione. Seleziona l'ambito corretto per visualizzare il tipo di cluster Kubernetes appropriato.
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
Nel selettore dei progetti, seleziona il progetto o l'organizzazione.
I cluster standard hanno ambito a livello di progetto e i cluster condivisi hanno ambito a livello di organizzazione. Seleziona l'ambito corretto per visualizzare il tipo di cluster Kubernetes appropriato.
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.
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 espellono e riprogrammano tutti i pod in esecuzione. Se i pod hanno selettori di nodi specifici, potrebbero rimanere in uno stato non pianificabile se nessun altro nodo del cluster soddisfa i criteri.
Prima di eliminare un pool di nodi, assicurati di avere almeno tre nodi worker per garantire che il cluster disponga di spazio di calcolo sufficiente per essere eseguito in modo efficace.
Per eliminare un pool di nodi, segui questi passaggi:
Console
Nel selettore dei progetti, seleziona il progetto o l'organizzazione.
I cluster standard hanno ambito a livello di progetto e i cluster condivisi hanno ambito a livello di organizzazione. Seleziona l'ambito corretto per visualizzare il tipo di cluster Kubernetes appropriato.
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.
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