Scalare cluster

Questo argomento spiega come scalare i cluster di carichi di lavoro Tanzu Kubernetes Grid (TKG) e i cluster di gestione autonomi, utilizzando i seguenti metodi:

  • Scalabilità automatica: Per i cluster di carichi di lavoro distribuiti da un cluster di gestione autonomo, è possibile utilizzare Cluster Autoscaler per scalare automaticamente il numero di nodi di lavoro per soddisfare la domanda. Vedere Scalabilità dei nodi worker locali con Cluster Autoscaler.

    Non è possibile utilizzare la scalabilità automatica per scalare i cluster del carico di lavoro distribuiti da un cluster supervisore.

  • Scala orizzontale: Per i carichi di lavoro o i cluster di gestione autonomi, è possibile scalare manualmente il numero di nodi del piano di controllo e di lavoro. Vedere Scalare orizzontalmente un cluster.

  • Scala verticale: Per i cluster del carico di lavoro, è possibile modificare manualmente le dimensioni del piano di controllo e dei nodi di lavoro. Vedere Scalare verticalmente un cluster.

Nota

per scalare i nodi in un pool di nodi, vedere Aggiornamento dei pool di nodi in Gestione di pool di nodi di diversi tipi di macchine virtuali.
Non è possibile scalare i cluster a nodo singolo.

Scalabilità dei nodi worker locali con Cluster Autoscaler (Cluster di gestione autonomo)

Cluster Autoscaler è un programma Kubernetes che scala automaticamente i cluster Kubernetes in base alle esigenze dei cluster del carico di lavoro. Utilizzare Cluster Autoscaler solo per i cluster del carico di lavoro distribuiti da un cluster di gestione autonomo.

Per ulteriori informazioni su Cluster Autoscaler, vedere la seguente documentazione in GitHub:

Per impostazione predefinita, Cluster Autoscaler è disattivato in Tanzu Kubernetes Grid. Per abilitare il servizio Cluster Autoscaler in un cluster del carico di lavoro, impostare ENABLE_AUTOSCALER su true e impostare le opzioni AUTOSCALER_ nel file di configurazione del cluster o come variabili di ambiente prima di eseguire tanzu cluster create --file.

Ciascuna variabile di configurazione di Cluster Autoscaler in un file di configurazione del cluster corrisponde a un parametro dello strumento Cluster Autoscaler. Per un elenco di queste variabili e dei relativi valori predefiniti, vedere Cluster Autoscaler nelle Informazioni di riferimento sulle variabili del file di configurazione.

Le impostazioni AUTOSCALER_*_SIZE limitano il numero di nodi worker in un cluster, mentre AUTOSCALER_MAX_NODES_TOTAL limita il numero di tutti i nodi, ovvero worker e piano di controllo.

Impostare i valori di AUTOSCALER_*_SIZE in base al numero di nodi worker nel cluster:

  • Per i cluster con un singolo nodo worker, ad esempio i cluster dev, impostare AUTOSCALER_MIN_SIZE_0 e AUTOSCALER_MAX_SIZE_0.
  • Per i cluster con più nodi worker, ad esempio i cluster prod, impostare:
    • AUTOSCALER_MIN_SIZE_0 e AUTOSCALER_MAX_SIZE_0
    • AUTOSCALER_MIN_SIZE_1 e AUTOSCALER_MAX_SIZE_1
    • AUTOSCALER_MIN_SIZE_2 e AUTOSCALER_MAX_SIZE_2

Di seguito viene fornito un esempio di impostazioni di Cluster Autoscaler in un file di configurazione del cluster. Non è possibile modificare questi valori dopo aver distribuito il cluster.

#! ---------------------------------------------------------------------
#! Autoscaler related configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
AUTOSCALER_MAX_NODES_TOTAL: "0"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
AUTOSCALER_MIN_SIZE_0:
AUTOSCALER_MAX_SIZE_0:
AUTOSCALER_MIN_SIZE_1:
AUTOSCALER_MAX_SIZE_1:
AUTOSCALER_MIN_SIZE_2:
AUTOSCALER_MAX_SIZE_2:

Per ciascun cluster del carico di lavoro creato con Cluster Autoscaler abilitato, Tanzu Kubernetes Grid crea una distribuzione del servizio Cluster Autoscaler nel cluster di gestione. Per disattivare Cluster Autoscaler, eliminare la distribuzione di Cluster Autoscaler associata al cluster del carico di lavoro.

Scalare orizzontalmente un cluster

È possibile scalare orizzontalmente un cluster TKG in due modi, in base al tipo di cluster:

  • Tutti i cluster Utilizzare la CLI di Tanzu, come descritto immediatamente di seguito
  • Cluster dei carichi di lavoro basati sulla classe Modificare le impostazioni replicas nella definizione del cluster, come descritto nella seguente sezione Scalabilità di un cluster basato sulla classe.

Per scalare orizzontalmente un carico di lavoro o un cluster di gestione autonomo utilizzando la CLI di Tanzu, eseguire il comando tanzu cluster scale.

Importante

Non modificare il contesto o modificare il file .kube-tkg/config mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.

  • Piano di controllo e nodi di lavoro: Le opzioni --controlplane-machine-count e --worker-machine-count impostano il nuovo numero di nodi del piano di controllo e di nodi worker rispettivamente.
  • Esempi:

    • Per scalare un cluster in modo che contenga 5 nodi del piano di controllo e 10 nodi worker:

      tanzu cluster scale MY-CLUSTER --controlplane-machine-count 5 --worker-machine-count 10
      

      Se si distribuisce un cluster con --controlplane-machine-count 1 e poi lo si scala fino a 3 nodi del piano di controllo, Tanzu Kubernetes Grid abilita automaticamente HA con stack nel piano di controllo.

    • Se il cluster è in esecuzione in uno spazio dei nomi diverso da default, è necessario includere l'opzione --namespace:

      tanzu cluster scale MY-CLUSTER --controlplane-machine-count 5 --worker-machine-count 10 --namespace=MY-NAMESPACE
      
  • vSphere con cluster di gestione autonomo: Dopo aver modificato il numero di nodi di un cluster su vSphere distribuito con un cluster di gestione autonomo, le prenotazioni DHCP degli indirizzi IP di tutti gli indirizzi IP dei nodi aggiunti o rimossi devono essere riservate o rilasciate. Per modificare manualmente queste prenotazioni, vedere Configurazione delle prenotazioni DHCP dei nodi e del record DNS dell'endpoint (solo vSphere). Per istruzioni su come configurare le prenotazioni DHCP, consultare la documentazione del server DHCP.

  • vSphere con cluster supervisore Nei cluster eseguiti in vSphere with Tanzu, è possibile eseguire solo 1 nodo del piano di controllo o 3 nodi del piano di controllo. È possibile aumentare il numero di nodi del piano di controllo da 1 a 3, ma non è possibile ridurre il numero da 3 a 1.

Scalare verticalmente un cluster

La procedura di scalabilità verticale di un cluster del carico di lavoro dipende dal tipo di cluster.

TKC e cluster basati sul piano

eseguire la procedura indicata in Updating Infrastructure Machine Templates in The Cluster API Book, che consente di modificare il modello di macchina del cluster.

La procedura scarica il modello di macchina esistente del cluster con un comando kubectl get che è possibile creare nel modo seguente:

kubectl get MACHINE-TEMPLATE-TYPE MACHINE-TEMPLATE-NAME -o yaml

In cui:

  • MACHINE-TEMPLATE-TYPE è:
    • VsphereMachineTemplate in vSphere
    • AWSMachineTemplate in Amazon Web Services (AWS)
    • AzureMachineTemplate in Azure
  • MACHINE-TEMPLATE-NAME è il nome del modello di macchina per i nodi del cluster che si stanno scalando, che utilizza il formato:
    • CLUSTER-NAME-control-plane per i nodi del piano di controllo
    • CLUSTER-NAME-worker per i nodi worker

Ad esempio:

kubectl get VsphereMachineTemplate monitoring-cluster-worker -o yaml

Cluster basati sulla classe

Per scalare verticalmente un cluster basato sulla classe, modificare le impostazioni di machine nella sua definizione del cluster, come descritto in Scalabilità di un cluster basato sulla classe, di seguito.

Scalabilità di un cluster basato sulla classe

Per scalare orizzontalmente o verticalmente un cluster basato sulla classe utilizzando la sua configurazione topology:

  1. Impostare kubectl sul contesto del cluster di gestione, ad esempio:

    kubectl config use-context management-cluster@admin
    
  2. Eseguire kubectl edit cluster CLUSTER-NAME e modificare le impostazioni nel relativo blocco topology in controlPlane e worker.

    Per scalare orizzontalmente, modificare le impostazioni replicas. Per scalare verticalmente, modificare le impostazioni in machine.

    Ad esempio:

    - name: controlPlane
      value:
        replicas: 3
        machine:
          diskGiB: 20
          memoryMiB: 8192
          numCPUs: 4
    - name: worker
      value:
        replicas: 5
        machine:
          diskGiB: 20
          memoryMiB: 8192
          numCPUs: 4
    
check-circle-line exclamation-circle-line close-line
Scroll to top icon