Gestire i pool di nodi

Quando crei un cluster Kubernetes air-gapped Google Distributed Cloud (GDC), il numero e il tipo di nodi specificati 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 node pool: aggiungi nuovi node pool man mano che aumenta la domanda per i workload del cluster.

  • Visualizzare un pool di nodi: visualizza le caratteristiche e lo stato dei tuoi pool di nodi esistenti.

  • Ridimensiona un node pool: aumenta o riduci manualmente le dimensioni dei node pool per adattarli alle fluttuazioni del traffico del carico di lavoro.

  • Eliminare un node pool: rimuovi i node pool 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 node pool in un cluster, consulta Informazioni sui nodi.

Questo documento è destinato agli sviluppatori di applicazioni all'interno del gruppo di operatori di applicazioni e agli amministratori IT all'interno del gruppo di amministratori della piattaforma responsabili della gestione dei cluster Kubernetes all'interno della propria organizzazione. Per ulteriori informazioni, consulta Segmenti di pubblico per la documentazione air-gap 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 cluster utente (user-cluster-admin)
    • Visualizzatore nodi del cluster utente (user-cluster-node-viewer)

    Questi ruoli non sono associati a uno spazio dei nomi.

  • Per visualizzare e gestire i node pool in un cluster Kubernetes standard, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Amministratore 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, completa i seguenti 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 workload. 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 la CLI 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 zona di destinazione, consulta Accedi per maggiori dettagli.
  2. Aggiungi una nuova voce nella sezione nodePools:

    nodePools:
    ...
    - 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 macchina disponibili per scoprire cosa è possibile configurare.
    • 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 questopool di nodil. 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.
    • GPU_PARTITION_SCHEME: lo schema di partizionamento della GPU, se esegui carichi di lavoro GPU. Ad esempio, mixed-2. La GPU non è partizionata se questo campo non è impostato. Per i profili GPU multi-istanza (MIG) disponibili, consulta Profili MIG supportati.
  3. Salva il file ed esci dall'editor.

Visualizza i node pool

Per visualizzare i node pool esistenti in un cluster Kubernetes, completa i seguenti 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 node pool in esecuzione nel cluster. Da questa pagina puoi gestire i pool di nodi del cluster.

API

  • Visualizza i node pool 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 node pool

Puoi ridimensionare manualmente i node pool in un cluster Kubernetes aumentando o diminuendo le dimensioni del pool. Non puoi selezionare un nodo specifico da rimuovere quando riduci le dimensioni di unpool di nodil.

Per scalare un pool di nodi in un cluster esistente, completa i seguenti 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 node pool.
  6. Aggiorna il campo Numero di nodi in modo che rifletta la nuova quantità di nodi necessari nelpool di nodil. Puoi aumentare o diminuire il numero di nodi per soddisfare i requisiti del tuo carico di lavoro.

  7. Fai clic su Salva.

  8. Torna alla scheda Node pool 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 kubectl CLI 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 da eseguire il provisioning nel pool di nodi.

  3. Salva il file ed esci dall'editor.

  4. Verifica che lo scaling dei nodi sia 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 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, completa i seguenti 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 kubectl CLI 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 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.