Aggiungere flessibilità alle istanze


Questo documento descrive come aggiungere la flessibilità delle istanze che ti consente di impostare più tipi di macchine in un gruppo di istanze gestite (MIG).

Puoi aggiungere flessibilità alle istanze durante la creazione di un gruppo di istanze gestite o modificando un gruppo di istanze gestite esistente. Per aggiungere la flessibilità, configura un criterio di flessibilità dell'istanza nel MIG. Il criterio sostituisce il tipo di macchina specificato nel modello di istanza. Ogni volta che il gruppo di istanze gestite crea un'istanza di una macchina virtuale (VM), automaticamente seleziona uno dei tipi di macchina che hai elencato nel criterio in base alla risorsa la disponibilità del servizio. Puoi anche assegnare dei ranking agli elenchi di tipi di macchine per indicare la tua preferenza.

Per sapere come funziona la flessibilità delle istanze in un gruppo di istanze gestite, consulta Informazioni sulla flessibilità delle istanze.

Prima di iniziare

  • Assicurati di scegliere tipi di macchina supportati nella regione dove si trova il gruppo di istanze gestite. Per visualizzare i tipi di macchine in una regione, consulta Regioni e zone disponibili.
  • Se non l'hai ancora fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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. Terraform

      Per utilizzare gli esempi di Terraform in questa pagina in un ambiente dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Install the Google Cloud CLI.
      2. To initialize the gcloud CLI, run the following command:

        gcloud init
      3. If you're using a local shell, then create local authentication credentials for your user account:

        gcloud auth application-default login

        You don't need to do this if you're using Cloud Shell.

      Per ulteriori informazioni, consulta Set up authentication for a local development environment.

      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, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Crea un gruppo di istanze gestite con flessibilità delle istanze

Prima di creare un gruppo di istanze gestite, devi prima creare un modello di istanza, se non ne hai già uno. Puoi quindi creare un gruppo di istanze gestite con la flessibilità delle istanze per eseguire l'override del tipo di macchina specificato nel modello di istanza.

Crea un gruppo di istanze gestite con flessibilità delle istanze in uno dei seguenti modi:

Creare un gruppo di istanze gestite con più tipi di macchine

gcloud

Per creare un gruppo di istanze gestite a livello di regione con più tipi di macchine, utilizza il comando beta instance-groups managed create come segue:

gcloud beta compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

I gruppi di istanze gestite zonali non supportano la flessibilità delle istanze. Tuttavia, se vuoi creare un gruppo di istanze gestite in una zona singola, imposta la forma di distribuzione target su any-single-zone. Inoltre, se desideri una zona specifica, utilizza forma di distribuzione di any-single-zone e includi il flag --zones ZONE.

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite.
  • REGION: la regione in cui vuoi creare il gruppo di istanze gestite.
  • TARGET_SIZE: il numero di VM che vuoi che il MIG crei e gestisca.
  • INSTANCE_TEMPLATE: il nome del modello di istanza.
  • SHAPE: la forma di distribuzione target. Il valore può balanced o any-single-zone. Le altre forme di distribuzione di destinazione non supportati.
  • MACHINE_TYPE: i tipi di macchine da configurare nel gruppo di istanze gestite, ad esempio n1-standard-16,n2-standard-16,e2-standard-16.

REST

Per creare un gruppo di istanze gestite a livello di regione con più tipi di macchine, invia una richiesta POST al metodo regionInstanceGroupManagers.insert beta.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": TARGET_SIZE,
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "distributionPolicy": {
    "targetShape": "SHAPE"
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ]
      }
    }
  }
}

I gruppi di istanze gestite di zona non supportano la flessibilità delle istanze. Tuttavia, se vuoi creare un gruppo di istanze gestite in una zona singola, imposta la forma di distribuzione target su ANY_SINGLE_ZONE. Inoltre, se desideri una zona specifica, utilizza forma di distribuzione di ANY_SINGLE_ZONE e includono distributionPolicy.zones[].zone nella richiesta.

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui vuoi creare il gruppo di istanze gestite.
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite.
  • TARGET_SIZE: il numero di VM che vuoi che il MIG crei e gestisca.
  • INSTANCE_TEMPLATE_URL: l'URL dell'istanza modello.
  • SHAPE: la forma di distribuzione target. Il valore può essere BALANCED o ANY_SINGLE_ZONE. Le altre forme di distribuzione di destinazione non supportati.
  • INSTANCE_SELECTION: il nome dell'elenco di tipi di macchine.
  • MACHINE_TYPE: i tipi di macchina che vuoi per la configurazione nel gruppo di istanze gestite, ad esempio "n1-standard-16","n2-standard-16","e2-standard-16".

Crea un gruppo di istanze gestite con più tipi di macchina e preferenze

gcloud

Per creare un gruppo di istanze gestite a livello di regione con più tipi di macchine e preferenze, utilizza il comando instance-groups managed create beta.

gcloud beta compute instance-groups managed create INSTANCE_GROUP_NAME \
    --region REGION \
    --size TARGET_SIZE \
    --template INSTANCE_TEMPLATE \
    --target-distribution-shape SHAPE \
    --instance-redistribution-type none \
    --instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \
    --instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"

I gruppi di istanze gestite di zona non supportano la flessibilità delle istanze. Tuttavia, se vuoi creare un gruppo di istanze gestite in una zona singola, imposta la forma di distribuzione target su any-single-zone. Inoltre, se desideri una zona specifica, utilizza forma di distribuzione di any-single-zone e includi il flag --zones ZONE.

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite.
  • REGION: la regione in cui vuoi creare il gruppo di istanze gestite.
  • TARGET_SIZE: il numero di VM che vuoi che il MIG crei e mantenga.
  • INSTANCE_TEMPLATE: il nome dell'istanza modello.
  • SHAPE: forma di distribuzione di destinazione. Il valore può balanced o any-single-zone. Le altre forme di distribuzione target non sono supportate.
  • INSTANCE_SELECTION: il nome dell'elenco della macchina di testo. Puoi aggiungere più elenchi con preferenze diverse.
  • MACHINE_TYPE: i tipi di macchina che vuoi nel gruppo di istanze gestite.

REST

Per creare un gruppo di istanze gestite a livello di regione con più tipi di macchina, effettua una richiesta POST a il beta regionInstanceGroupManagers.insert.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "targetSize": TARGET_SIZE,
  "instanceTemplate": "INSTANCE_TEMPLATE_URL",
  "distributionPolicy": {
    "targetShape": "SHAPE"
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2",
          ...
        ],
        "rank": RANK_1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4",
          ...
        ],
        "rank": RANK_2
      },
      ...
    }
  }
}

I gruppi di istanze gestite di zona non supportano la flessibilità delle istanze. Tuttavia, se vuoi creare un gruppo di istanze gestite in una zona singola, imposta la forma di distribuzione target su ANY_SINGLE_ZONE. Inoltre, se vuoi una zona specifica, utilizza la forma di distribuzione ANY_SINGLE_ZONE e includi il campo distributionPolicy.zones[].zone nella richiesta.

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui vuoi creare il gruppo di istanze gestite.
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite.
  • TARGET_SIZE: il numero di VM che vuoi che il MIG crei e gestisca.
  • INSTANCE_TEMPLATE_URL: l'URL dell'istanza modello.
  • SHAPE: la forma di distribuzione target. Il valore può BALANCED o ANY_SINGLE_ZONE.
  • ZONE: la zona in cui vuoi creare il gruppo di istanze gestite. Utilizza questo campo se vuoi creare un gruppo di istanze gestite a livello di regione in una determinata zona. In caso contrario, puoi saltare questo campo.
  • INSTANCE_SELECTION: il nome dell'elenco di tipi di macchine virtuali. Puoi aggiungere più elenchi con preferenze diverse.
  • MACHINE_TYPE: i tipi di macchina che vuoi per la configurazione nel gruppo di istanze gestite.
  • RANK: il numero che rappresenta l'ordine dei preferenza. Un valore più basso corrisponde a una preferenza più alta.

Aggiungi flessibilità dell'istanza a un gruppo di istanze gestite esistente

Puoi aggiungere flessibilità delle istanze a un gruppo MIG esistente. Se il gruppo di istanze gestite contiene già VM, devi rimuoverle ridimensionando il gruppo di istanze gestite a 0. Quindi, puoi impostare più tipi di macchina nel gruppo di istanze gestite. Puoi anche impostare preferenze per determinati tipi di macchine.

Se vuoi aggiungere una selezione di istanze a un criterio di flessibilità dell'istanza esistente, consulta Modificare la configurazione della flessibilità dell'istanza.

Imposta più tipi di macchina

gcloud

Per impostare più tipi di macchina in un gruppo di istanze gestite, utilizza comando instance-groups managed update beta.

gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
    --region REGION \
    --size 0 \
    --instance-selection-machine-types MACHINE_TYPE,MACHINE_TYPE,...

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite in cui per una maggiore flessibilità delle istanze.
  • REGION: la regione in cui si trova il gruppo di istanze gestite.
  • MACHINE_TYPE: i tipi di macchine da configurare nel gruppo di istanze gestite, ad esempio n1-standard-16,n2-standard-16,e2-standard-16.

REST

Per impostare più tipi di macchine in un gruppo di istanze gestite, invia una richiesta PATCH al metodo regionInstanceGroupManagers.patch beta.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "targetSize": 0,
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
    "INSTANCE_SELECTION": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
          ...
        ]
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui si trova il gruppo di istanze gestite.
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite in cui vuoi aggiungere la flessibilità delle istanze.
  • INSTANCE_SELECTION: un nome per l'elenco di tipi di macchine virtuali.
  • MACHINE_TYPE: i tipi di macchina che vuoi per la configurazione nel gruppo di istanze gestite, ad esempio "n1-standard-16","n2-standard-16","e2-standard-16".
  • RANK: il numero che rappresenta l'ordine dei preferenza. Un valore più basso indica una preferenza più alta.

Impostare più tipi di macchine e preferenze

gcloud

Per impostare più tipi di macchina con preferenze in un gruppo di istanze gestite, utilizza comando instance-groups managed update beta

gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
    --region REGION \
    --size 0 \
    --instance-selection "name=INSTANCE_SELECTION_1,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2,rank=RANK_1" \
    --instance-selection "name=INSTANCE_SELECTION_2,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4,rank=RANK_2"

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite in cui per una maggiore flessibilità delle istanze.
  • REGION: la regione in cui si trova il gruppo di istanze gestite.
  • INSTANCE_SELECTION: il nome dell'elenco della macchina di testo. Puoi aggiungere più elenchi con preferenze diverse.
  • MACHINE_TYPE: i tipi di macchine da configurare nel gruppo di istanze gestite.

REST

Per impostare più tipi di macchine con preferenze in un gruppo di istanze gestite, utilizza il metodo beta regionInstanceGroupManagers.patch.

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "targetSize": 0,
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "rank": RANK_1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4"
        ],
        "rank": RANK_2
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la regione in cui si trova il gruppo di istanze gestite.
  • INSTANCE_GROUP_NAME: il nome del gruppo di istanze gestite.
  • INSTANCE_SELECTION: il nome dell'elenco di tipi di macchine. Puoi aggiungere più elenchi con preferenze diverse.
  • MACHINE_TYPE: i tipi di macchine da configurare nel gruppo di istanze gestite.

Passaggi successivi