Gestire i pool di nodi

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.

  • 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_KUBECONFIG in queste istruzioni.

Aggiungi un pool di nodi

Per aggiungere un pool di nodi a un cluster Kubernetes esistente, segui questi passaggi:

Console

  1. Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
  2. Fai clic sul cluster nell'elenco dei cluster. Viene visualizzata la pagina Dettagli cluster.
  3. Seleziona Pool di nodi > Aggiungi pool di nodi.
  4. Assegna un nome al pool di nodi. Non puoi modificare il nome dopo aver creato il pool di nodi.
  5. Specifica il numero di nodi worker da creare nel pool di nodi.
  6. 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
  7. Fai clic su Salva.

API

  1. Apri la specifica della risorsa personalizzata Cluster con 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_SERVER
    

    Sostituisci 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 nomi platform. 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.
  2. 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_SCHEME
    

    Sostituisci 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.
  3. 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

  1. Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
  2. Fai clic sul cluster nell'elenco dei cluster. Viene visualizzata la pagina Dettagli cluster.
  3. 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.workerNodePoolStatuses
    

    Sostituisci 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 nomi platform. 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

  1. Nella dashboard, seleziona il progetto in cui esiste il cluster che intendi modificare.
  2. Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.
  3. Seleziona il nome del cluster a cui è associato il pool di nodi. Viene visualizzata la pagina Dettagli cluster.
  4. Fai clic sulla scheda Pool di nodi.
  5. Seleziona l'icona Modifica per il pool di nodi che vuoi ridimensionare. Viene visualizzato il prompt Modifica pool di nodi.
  6. 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.

  7. Fai clic su Salva.

  8. Torna alla scheda Pool di nodi del cluster e verifica che il pool di nodi ridimensionato abbia lo stato Ready e il numero corretto di nodi. Potrebbero essere necessari alcuni minuti prima che il pool di nodi venga scalato in base alle tue specifiche.

    Verifica che il pool di nodi sia pronto utilizzando la console.

API

  1. Apri la specifica della risorsa personalizzata Cluster con 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_SERVER
    

    Sostituisci 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 nomi platform. 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.
  2. Aggiorna il campo nodeCount per 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_NODES
    

    Sostituisci NUMBER_OF_WORKER_NODES con il numero aggiornato di nodi worker di cui eseguire il provisioning nel pool di nodi.

  3. Salva il file ed esci dall'editor.

  4. 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.workerNodePoolStatuses
    

    Verifica che il numero readyNodes rifletta 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

  1. Nel menu di navigazione, seleziona Kubernetes Engine > Cluster.

  2. Fai clic sul cluster che ospita il pool di nodi che vuoi eliminare.

  3. Seleziona Pool di nodi.

  4. Fai clic su Elimina accanto al pool di nodi da eliminare.

API

  1. Apri la specifica della risorsa personalizzata Cluster con 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_SERVER
    

    Sostituisci 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 nomi platform. 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.
  2. Rimuovi la voce del pool di nodi dalla sezione nodePools. Ad esempio, nel seguente snippet devi rimuovere i campi machineTypeName, name e nodeCount:

    nodePools:
    # Several lines of code are omitted here.
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    Assicurati di rimuovere tutti i campi per il pool di nodi che stai eliminando.

  3. Salva il file ed esci dall'editor.

Passaggi successivi