Scala automaticamente i gruppi di nodi


Se utilizzi nodi con singolo tenant per i tuoi workload, puoi gestire automaticamente le dimensioni dei gruppi di nodi utilizzando lo strumento di scalabilità automatica dei gruppi di nodi. Puoi configurare la scalabilità automatica durante la creazione di un gruppo di nodi o dopo averne creato uno.

Il gestore della scalabilità automatica può aiutarti a gestire automaticamente le dimensioni dei gruppi di nodi con tenancy esclusiva:

  • Aumentando le dimensioni di un gruppo di nodi quando la capacità non è sufficiente per un'altra istanza di macchina virtuale (VM) in quel gruppo di nodi. Dopo che il gestore della scalabilità automatica aumenta le dimensioni del gruppo di nodi, le VM vengono pianificate in modo trasparente.

  • Riduzione delle dimensioni di un gruppo di nodi quando sono presenti nodi vuoti, il che ti impedisce di pagare per i nodi single-tenant non utilizzati.

Durante lo scaling di un gruppo di nodi, il gestore della scalabilità automatica considera la capacità richiesta per la VM di cui è stata pianificata l'esecuzione, la capacità libera sui nodi di destinazione e il criterio di scalabilità automatica del gruppo di nodi. La capacità richiesta si basa solo sulle dimensioni della VM. La capacità libera viene stimata in base alle dimensioni del nodo, alle VM già pianificate e al rapporto di overcommit della CPU facoltativo.

Il seguente diagramma mostra:

  1. Il gestore della scalabilità automatica del gruppo di nodi esegue lo scale out aggiungendo un nuovo nodo a un gruppo di nodi in risposta al deployment di una VM in un gruppo di nodi senza nodi vuoti.

  2. Il gestore della scalabilità automatica del gruppo di nodi esegue lo scale down rimuovendo un nodo vuoto da un gruppo di nodi single-tenant.

Gestore della scalabilità automatica del gruppo di nodi che gestisce le dimensioni del gruppo di nodi.

Modalità di scalabilità automatica

Per impostazione predefinita, il gestore della scalabilità automatica non è abilitato nei gruppi di nodi. Quando il gestore della scalabilità automatica non è abilitato, devi gestire manualmente le dimensioni dei gruppi di nodi. Se attivi il gestore della scalabilità automatica su un gruppo di nodi, puoi specificare che il gestore della scalabilità automatica aumenti e diminuisca le dimensioni del gruppo di nodi (scalabilità orizzontale e riduzione), o che aumenti solo le dimensioni del gruppo (solo scalabilità orizzontale).

Scale out e fare lo scale in

In questa modalità, il gestore della scalabilità automatica del gruppo di nodi aumenta (scalabilità orizzontale) e diminuisce (scalabilità verticale) le dimensioni dei gruppi di nodi. Per questa modalità, devi specificare una dimensione massima e una dimensione minima per il gruppo di nodi. Il gestore della scalabilità automatica non aumenterà le dimensioni del gruppo di nodi oltre il massimo specificato o al di sotto del minimo specificato.

Lo scale out viene attivato quando la pianificazione di una VM non riesce a causa della mancanza di capacità. Per risolvere il problema, al gruppo viene aggiunto un nuovo nodo e l'operazione viene riprovata.

Lo scale-in viene attivato quando un nodo rimane vuoto per un periodo di tempo. Un nodo vuoto è il risultato dell'eliminazione o della migrazione di una VM dal gruppo di nodi. Se il criterio di scalabilità automatica del gruppo di nodi lo consente, il nodo vuoto viene pianificato per la rimozione dopo un periodo di stabilizzazione. Il periodo di stabilizzazione garantisce che il nodo sia ancora disponibile se devi utilizzarlo.

Solo scale out

Con questa modalità, il gestore della scalabilità automatica aumenta le dimensioni del gruppo di nodi in risposta alle richieste di pianificazione delle VM, ma non rimuove i nodi vuoti dai gruppi di nodi. Google consiglia questa modalità per i carichi di lavoro in aumento monotono o per i carichi di lavoro che richiedono l'affinità con il server fisico, ad esempio i carichi di lavoro BYOL, che richiedono che le licenze risiedano sullo stesso server fisico.

Devi utilizzare questa modalità se i tuoi gruppi di nodi sono configurati con la policy di manutenzione Migrazione all'interno del gruppo di nodi.

Intervallo di dimensioni di un gruppo di nodi

Quando abiliti il gestore della scalabilità automatica, imposti l'intervallo di dimensioni del gruppo di nodi specificando un valore minimo e massimo per le dimensioni del gruppo di nodi.

Se non specifichi un valore per la dimensione minima, il gestore della scalabilità automatica imposta la dimensione minima su zero (0). Se specifichi un valore per la dimensione minima, questo deve essere un numero intero maggiore o uguale a 0 e minore o uguale alla dimensione massima.

Devi specificare un valore per la dimensione massima del gruppo di nodi. Il valore deve essere un numero intero maggiore o uguale a 0 e minore o uguale a 100, che è la dimensione massima consentita per un gruppo di nodi sole-tenant, e il valore deve essere maggiore o uguale al valore minimo specificato.

Per ospitare workload che potrebbero superare la dimensione massima di 100 per un gruppo di nodi, crea più gruppi di nodi con etichette di affinità corrispondenti, ad esempio, workload:in:my-autoscaled-node-groups. Poi, pianifica le VM utilizzando quell'etichetta di affinità e attiva la scalabilità automatica su ogni gruppo per creare un gruppo di gruppi di nodi con scalabilità dinamica.

Disponibilità

Puoi utilizzare il gestore della scalabilità automatica dei nodi single-tenant solo nelle regioni che supportano i nodi single-tenant.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Abilita il gestore della scalabilità automatica del gruppo di nodi

Configura la scalabilità automatica su un nuovo gruppo di nodi.

gcloud

L'esempio seguente mostra come utilizzare il comando node-groups create per abilitare il gestore della scalabilità automatica durante la creazione di un gruppo di nodi. Per aggiungere un gestore della scalabilità automatica a un gruppo di nodi esistente, utilizza il comando node-groups update.

gcloud compute sole-tenancy node-groups create group-name \
    --node-template template-name \
    --target-size size \
    --maintenance-policy maintenance-policy \
    --zone zone \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Sostituisci quanto segue:

  • group-name: il nome del gruppo di nodi da creare.
  • template-name: il nome del modello di nodo da cui creare il gruppo di nodi.
  • size: Numero iniziale target di nodi nel gruppo di nodi.
  • maintenance-policy: specifica se le VM vengono migrate e se vengono riavviate durante gli eventi di manutenzione dell'host. Imposta uno dei seguenti valori:
    • default: le VM vengono migrate live a un nuovo nodo.
    • migrate-within-node-group: le VM vengono migrate live a un altro nodo del gruppo di nodi.
    • restart-in-place: le VM vengono riavviate sullo stesso nodo dopo essere state terminate a causa di un evento di manutenzione.
  • zone: la zona in cui creare il gruppo di nodi.
  • mode: la modalità del gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:
    • off: disattiva il gestore della scalabilità automatica.
    • on: consente lo scale in e lo scale out.
    • only-scale-out: consente solo lo scale out. Devi utilizzare questa modalità se i tuoi gruppi di nodi sono configurati per riavviare le VM ospitate sul numero minimo di server.
  • max-nodes: la dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.
  • min-nodes: la dimensione minima del gruppo di nodi e deve essere un valore intero inferiore o uguale a max-nodes. Il valore predefinito è 0.

REST

Il seguente esempio mostra come utilizzare il comando nodeGroups.insert per abilitare il gestore della scalabilità automatica durante la creazione di un gruppo di nodi. Per aggiungere un gestore della scalabilità automatica a un gruppo di nodi esistente, utilizza il comando nodeGroups.patch.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count

  {
    "name": "group-name",
    "nodeTemplate": "template-name",
    "autoscalingPolicy": {
      "mode": "mode",
      "min_nodes": min-nodes,
      "max_nodes": max-nodes
    }
    "maintenancePolicy": maintenance-policy
  }

Sostituisci quanto segue:

  • project-id: l'ID del progetto a cui aggiungere un gruppo di nodi con un gestore della scalabilità automatica.
  • zone: la zona in cui creare il nuovo gruppo di nodi.
  • initial-node-count: obbligatorio durante la creazione del gruppo di nodi. Specifica il numero iniziale di nodi nel gruppo di nodi. Se il valore di min-nodes è maggiore del conteggio iniziale dei nodi, le dimensioni del gruppo di nodi vengono scalate al valore di min-nodes.
  • group-name: il nome del nuovo gruppo di nodi.
  • template-name: il nome del modello di nodo da cui creare il gruppo di nodi.
  • mode: la modalità del gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:
    • OFF: disattiva il gestore della scalabilità automatica.
    • ON: consente lo scale in e lo scale out.
    • ONLY_SCALE_OUT: consente solo lo scale out. Devi utilizzare questa modalità se i tuoi gruppi di nodi sono configurati per riavviare le VM ospitate sul numero minimo di server.
  • max-nodes: la dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.
  • min-nodes: la dimensione minima del gruppo di nodi e deve essere un valore intero inferiore o uguale a max-nodes. Il valore predefinito è 0.
  • maintenance-policy: specifica se le VM vengono migrate e se vengono riavviate durante gli eventi di manutenzione dell'host. Imposta questo valore su uno dei seguenti:
    • DEFAULT: le VM vengono migrate live a un nuovo nodo.
    • MIGRATE_WITHIN_NODE_GROUP: le VM vengono migrate live a un altro nodo del gruppo di nodi.
    • RESTART_IN_PLACE: le VM vengono riavviate sullo stesso nodo dopo essere state terminate a causa di un evento di manutenzione.

Aggiorna le impostazioni del gestore della scalabilità automatica

Modifica le impostazioni del gestore della scalabilità automatica su un gruppo di nodi aggiornando la modalità del gestore della scalabilità automatica o aggiornando le dimensioni minime e massime del gruppo di nodi.

gcloud

L'esempio seguente mostra come utilizzare il comando node-groups update per modificare la modalità del gestore della scalabilità automatica in un gruppo di nodi.

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Sostituisci quanto segue:

  • name: il nome del gruppo di nodi su cui modificare la modalità del gestore della scalabilità automatica.
  • mode: la modalità del gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:
    • off: disattiva il gestore della scalabilità automatica.
    • on: consente lo scale in e lo scale out.
    • only-scale-out: consente solo lo scale out. Devi utilizzare questa modalità se i tuoi gruppi di nodi sono configurati per riavviare le VM ospitate sul numero minimo di server.
  • max-nodes: la dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.
  • min-nodes: la dimensione minima del gruppo di nodi e deve essere un valore intero inferiore o uguale a max-nodes. Il valore predefinito è 0.

REST

L'esempio seguente mostra come utilizzare il comando nodeGroups.patch per modificare la modalità di un gestore della scalabilità automatica in un gruppo di nodi.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode",
    "minSize": min-nodes,
    "maxSize": max-nodes
  }
}

Sostituisci quanto segue:

  • project-id: l'ID del progetto contenente il gruppo di nodi per cui modificare la modalità del gestore della scalabilità automatica.
  • group-zone: la zona contenente il gruppo di nodi per cui modificare la modalità del gestore della scalabilità automatica.
  • group-name: il nome del gruppo di nodi per cui modificare la modalità del gestore della scalabilità automatica.
  • template-name: il nome del modello di nodo da cui è stato creato il gruppo di nodi.
  • mode: la modalità del gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:

    • OFF: disattiva il gestore della scalabilità automatica.
    • ON: consente lo scale in e lo scale out.

    • ONLY_SCALE_OUT: consente solo lo scale out. Devi utilizzare questa modalità se i tuoi gruppi di nodi sono configurati con la policy di manutenzione Esegui la migrazione all'interno del gruppo di nodi.

  • max-nodes: la dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.

  • min-nodes: la dimensione minima del gruppo di nodi e deve essere un valore intero inferiore o uguale a max-nodes. Il valore predefinito è 0.

Aggiornare manualmente le dimensioni dei gruppi di nodi con scalabilità automatica

Quando il gestore della scalabilità automatica è abilitato, le dimensioni del gruppo di nodi vengono gestite automaticamente, ma puoi pianificare o rimuovere le VM nel gruppo di nodi per aggiornare manualmente le dimensioni del gruppo.

Per ridurre manualmente le dimensioni di un gruppo di nodi con scalabilità automatica, elimina le VM dal nodo finché non è vuoto. Quando il nodo è vuoto, il gestore della scalabilità automatica lo rimuove, riducendo le dimensioni del gruppo di nodi.

Per aumentare manualmente le dimensioni di un gruppo di nodi con scalabilità automatica, imposta le dimensioni minime del gruppo su un valore maggiore delle dimensioni attuali. Quando la dimensione minima di un gruppo è impostata su un valore superiore alla dimensione corrente, il gestore della scalabilità automatica esegue lo scale out della dimensione del gruppo fino alla dimensione minima appena specificata.

Quando i gruppi di nodi sono impostati solo per lo scale out, il gestore della scalabilità automatica gestisce automaticamente gli aumenti delle dimensioni del gruppo e disabilita gli aumenti manuali delle dimensioni del gruppo. Con questa impostazione, puoi ridurre le dimensioni di un gruppo rimuovendo le VM da un nodo finché non è vuoto, quindi puoi rimuovere il nodo vuoto.

Disattiva il gestore della scalabilità automatica

Quando non hai più bisogno di utilizzare il gestore della scalabilità automatica per gestire automaticamente le dimensioni dei gruppi di nodi o se devi gestire manualmente le dimensioni dei gruppi di nodi, disabilita il gestore della scalabilità automatica.

gcloud

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode OFF

Sostituisci name con il nome del gruppo di nodi da cui rimuovere la policy di scalabilità automatica.

REST

Il seguente esempio mostra come utilizzare il comando nodeGroups.patch per disattivare un gestore della scalabilità automatica su un gruppo di nodi.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode"
  }
}

Sostituisci quanto segue:

  • project-id: l'ID del progetto contenente il gruppo di nodi per cui modificare la modalità del gestore della scalabilità automatica.
  • group-zone: la zona contenente il gruppo di nodi per cui modificare la modalità del gestore della scalabilità automatica.
  • group-name: il nome del gruppo di nodi per cui modificare la modalità del gestore della scalabilità automatica.
  • template-name: il nome del modello di nodo da cui è stato creato il gruppo di nodi.
  • mode: la modalità del gestore della scalabilità automatica in questo gruppo di nodi. Imposta su OFF per disattivare il gestore della scalabilità automatica in questo gruppo di nodi.

Visualizza l'attività del gestore della scalabilità automatica

Nella console Google Cloud , visualizza il gestore della scalabilità automatica che regola le dimensioni dei gruppi di nodi. La console Google Cloud mostra le dimensioni attuali del gruppo di nodi e, se il gestore della scalabilità automatica sta modificando le dimensioni del gruppo, puoi anche visualizzare le dimensioni di destinazione del gruppo di nodi.

Console

  1. Nella console Google Cloud , vai alla pagina Nodi single-tenant.

    Vai a Nodi single-tenant

  2. Fai clic su Gruppi di nodi.

  3. Visualizza il numero di nodi in ogni gruppo di nodi e, se Compute Engine sta scalando il gruppo di nodi, puoi anche visualizzare il numero target di nodi.

Passaggi successivi