Gruppi di nodi con scalabilità automatica


Se utilizzi nodi monoproprietario per i tuoi carichi di lavoro, puoi gestire automaticamente le dimensioni dei gruppi di nodi utilizzando l'autoscaler dei gruppi di nodi. Puoi configurare la scalabilità automatica durante la creazione di un gruppo di nodi o dopo averli creati.

Il gestore della scalabilità automatica può aiutarti a gestire automaticamente le dimensioni dei gruppi di nodi di proprietà privata:

  • Aumento delle 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 lo strumento di scalabilità automatica ha aumentato le dimensioni del gruppo di nodi, le VM vengono pianificate in modo trasparente.

  • Riduci le dimensioni di un gruppo di nodi quando sono presenti nodi vuoti, in modo da non pagare per i nodi single-tenant inutilizzati.

Durante la scalabilità di un gruppo di nodi, il gestore della scalabilità automatica prende in considerazione la capacità richiesta per la VM pianificata, 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 l'espansione 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. La scalabilità automatica del gruppo di nodi rimuovendo un nodo vuoto da un gruppo di nodi monoproprietario.

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

Modalità del gestore della scalabilità automatica

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

Eseguire lo scale out e fare lo scale in

In questa modalità, il gestore della scalabilità automatica dei gruppi 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 valore massimo o al di sotto del valore minimo specificato.

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

Il ridimensionamento verso il basso viene attivato quando un nodo rimane vuoto per un determinato 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, la rimozione del nodo vuoto è pianificata dopo un periodo di stabilizzazione. Il periodo di stabilizzazione garantisce che il nodo sia ancora disponibile se devi utilizzarlo.

Solo scale out

In questa modalità, lo strumento di 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 in modo 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 si trovino sullo stesso server fisico.

Devi utilizzare questa modalità se i gruppi di nodi sono configurati con il criterio di manutenzione Esegui la migrazione all'interno del gruppo di nodi.

Intervallo di dimensioni di un gruppo di nodi

Quando attivi 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 ridimensionamento automatico imposta la dimensione minima su zero (0). Se specifichi un valore per la dimensione minima, 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 monoproprietario, nonché maggiore o uguale al valore minimo specificato.

Per supportare i carichi di lavoro che potrebbero superare le dimensioni massime 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. Quindi, pianifica le VM utilizzando l'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 l'autoscalabilità 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 è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. 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. Install the Google Cloud CLI, then initialize it by running the following command:

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

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Attiva il gestore della scalabilità automatica del gruppo di nodi

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

gcloud

L'esempio riportato di seguito mostra come utilizzare il comando node-groups create per attivare il gestore della scalabilità automatica quando crei 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 in tempo reale a un nuovo nodo.
    • migrate-within-node-group: viene eseguita la migrazione live delle VM a un altro nodo nel 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à per il gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:
    • off: disattiva il gestore della scalabilità automatica.
    • on: consente il ridimensionamento in entrata e in uscita.
    • only-scale-out: consente solo lo scale out. Devi utilizzare questa modalità se i gruppi di nodi sono configurati per riavviare le VM ospitate su server minimi.
  • max-nodes: dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.
  • min-nodes: dimensione minima del gruppo di nodi e deve essere un valore intero minore o uguale a max-nodes. Il valore predefinito è 0.

REST

Il seguente esempio mostra come utilizzare il comando nodeGroups.insert per attivare il gestore della scalabilità automatica quando crei 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: ID del progetto per cui aggiungere un gruppo di nodi con un'automazione di scalabilità.
  • zone: zona in cui creare il nuovo gruppo di nodi.
  • initial-node-count: obbligatorio per la creazione del gruppo di nodi. Questo specifica il numero iniziale di nodi nel gruppo di nodi. Se il valore di min-nodes è maggiore del numero iniziale di nodi, le dimensioni del gruppo di nodi vengono scalate in base 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à per il gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:
    • OFF: disattiva il gestore della scalabilità automatica.
    • ON: consente il ridimensionamento in entrata e in uscita.
    • ONLY_SCALE_OUT: consente solo lo scale out. Devi utilizzare questa modalità se i gruppi di nodi sono configurati per riavviare le VM ospitate su server minimi.
  • max-nodes: dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.
  • min-nodes: dimensione minima del gruppo di nodi e deve essere un valore intero minore 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 uno dei seguenti valori:
    • DEFAULT: le VM vengono migrate in tempo reale a un nuovo nodo.
    • MIGRATE_WITHIN_NODE_GROUP: viene eseguita la migrazione live delle VM a un altro nodo nel 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 in un gruppo di nodi aggiornando la modalità del gestore della scalabilità automatica o le dimensioni minime e massime del gruppo di nodi.

gcloud

Il seguente esempio mostra come utilizzare il comando node-groups update per modificare la modalità dell'autoscalabilità 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à per il gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:
    • off: disattiva il gestore della scalabilità automatica.
    • on: consente il ridimensionamento in entrata e in uscita.
    • only-scale-out: consente solo lo scale out. Devi utilizzare questa modalità se i gruppi di nodi sono configurati per riavviare le VM ospitate su server in versione minima.
  • max-nodes: dimensione massima del gruppo di nodi. Imposta un valore minore o uguale a 100 e maggiore o uguale a min-nodes.
  • min-nodes: dimensione minima del gruppo di nodi e deve essere un valore intero minore 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 regolatore automatico 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 il quale modificare la modalità del gestore della scalabilità automatica.
  • group-name: il nome del gruppo di nodi per il quale cambiare 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à per il gestore della scalabilità automatica in questo gruppo di nodi. Imposta uno dei seguenti valori:

    • OFF: disattiva il gestore della scalabilità automatica.
    • ON: consente il ridimensionamento in entrata e in uscita.

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

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

  • min-nodes: dimensione minima del gruppo di nodi e deve essere un valore intero minore 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 in quel 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 di quelle correnti. Quando la dimensione minima di un gruppo è impostata su un valore maggiore di quella corrente, il gestore della scalabilità automatica esegue lo scale out delle dimensioni del gruppo fino alle dimensioni minime appena specificate.

Quando i gruppi di nodi sono impostati per eseguire solo lo scale out, il gestore della scalabilità automatica gestisce automaticamente gli aumenti delle dimensioni del gruppo e disattiva gli aumenti manuali delle dimensioni del gruppo. Con questa impostazione, puoi ridurre le dimensioni di un gruppo rimuovendo le VM da un nodo fino a quando 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 il criterio di scalabilità automatica.

REST

L'esempio seguente mostra come utilizzare il comando nodeGroups.patch per disattivare 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"
  }
}

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 il quale modificare la modalità del gestore della scalabilità automatica.
  • group-name: il nome del gruppo di nodi per il quale cambiare 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à per il gestore della scalabilità automatica in questo gruppo di nodi. Imposta su OFF per disattivare il gestore della scalabilità automatica in questo gruppo di nodi.

Visualizzare 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 regolando le dimensioni del gruppo, puoi anche vedere le dimensioni predefinite del gruppo di nodi.

Console

  1. Nella console Google Cloud, vai alla pagina Nodi di proprietà esclusiva.

    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 esegue il ridimensionamento del gruppo di nodi, puoi anche visualizzare il numero di nodi target.

Passaggi successivi