Configurazione di indirizzi IP stateful nei MIG


La configurazione di indirizzi IP stateful in un gruppo di istanze gestite (MIG), assicura che gli indirizzi IP vengano conservati quando le istanze VM nel gruppo vengono riparate automaticamente, aggiornate e ricreate.

Puoi conservare gli indirizzi IPv4 interni ed esterni. Puoi configurare gli indirizzi IP in modo che vengano assegnati automaticamente o assegnare indirizzi IP specifici a ogni istanza VM in un MIG.

Prima di iniziare

  • Rivedi quando utilizzare MIG stateful e come funzionano i MIG stateful.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di 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. 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. Terraform

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

        1. Install the Google Cloud CLI.

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

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. 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.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

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

        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 .

Limitazioni

Un MIG con indirizzi IP stateful presenta le seguenti limitazioni:

  • Gli indirizzi IPv6 non sono supportati.

  • Gli indirizzi IP interni non sono supportati nelle reti prive di subnet, ad esempio le reti legacy.

Un MIG con configurazione stateful, ovvero un MIG stateful, presenta le seguenti limitazioni:

  • Non puoi utilizzare la scalabilità automatica se il MIG ha una configurazione stateful.
  • Se vuoi utilizzare gli aggiornamenti in sequenza automatici, devi impostare il metodo di sostituzione su RECREATE.
  • Per i MIG stateful a livello di regione, devi disattivare la ridistribuzione proattiva (imposta il tipo di ridistribuzione su NONE) per impedire che la ridistribuzione automatica tra zone elimini istanze stateful.
  • Se utilizzi una configurazione di tutte le istanze per eseguire l'override delle proprietà del modello di istanza, non puoi specificare queste proprietà in una configurazione per istanza e contemporaneamente nella configurazione di tutte le istanze del gruppo.

Prezzi

Ti verranno addebitati dei costi per gli indirizzi IP esterni in base ai prezzi di networking.

Quando utilizzare indirizzi IP stateful

La conservazione degli indirizzi IP delle istanze è utile nei seguenti scenari:

  • La tua applicazione, ad esempio Kafka, richiede che un indirizzo IP rimanga statico una volta assegnato.
  • La configurazione dell'applicazione dipende da indirizzi IP specifici, ad esempio nel caso di un server DNS.
  • Gli utenti, inclusi quelli di altre applicazioni, accedono al server tramite un indirizzo IP statico dedicato, ad esempio nel caso di un file server.
  • Devi eseguire la migrazione dei workload esistenti senza modificare la configurazione di rete.

Configurazione di indirizzi IP stateful per tutte le VM di un gruppo

La configurazione di indirizzi IP stateful per tutte le VM in un MIG è utile nei seguenti scenari:

  • La tua applicazione richiede che un indirizzo IP rimanga statico una volta assegnato. Tuttavia, la tua applicazione non richiede l'assegnazione di indirizzi IP specifici a istanze specifiche. Gli indirizzi IP possono essere assegnati automaticamente al momento della creazione dell'istanza.
  • Gli utenti, inclusi quelli di altre applicazioni, accedono ai tuoi server tramite indirizzi IP statici che pubblichi dopo aver eseguito il deployment dell'applicazione.
  • Vuoi usufruire della riparazione automatica e degli aggiornamenti automatizzati delle istanze, mantenendo al contempo l'indirizzo IP statico assegnato automaticamente al momento della creazione dell'istanza.

Per mantenere statici gli indirizzi IP interni o esterni per le istanze VM esistenti e future nel gruppo, configura questa impostazione nella policy stateful.

Quando aggiungi la configurazione degli indirizzi IP stateful alla policy stateful del gruppo, il MIG applica la configurazione nel modo seguente:

  • Per le nuove istanze, il MIG assegna e prenota automaticamente indirizzi IP statici.
  • Per le istanze esistenti, il MIG promuove gli indirizzi IP temporanei interni o esterni in uso a indirizzi statici prenotando gli indirizzi IP statici corrispondenti.
  • Per le istanze esistenti senza indirizzi IP esterni, il MIG assegna e prenota indirizzi IP statici e aggiunge la configurazione di accesso all'interfaccia di rete corrispondente con i seguenti valori predefiniti:

    "accessConfigs": [
      {
        "kind": "compute#accessConfig",
        "name": "External NAT",
        "natIP": "XX.XX.XX.XX",
        "networkTier": "PREMIUM",
        "type": "ONE_TO_ONE_NAT"
      }
    ]
    

Per prenotare un indirizzo IP statico, il MIG crea una risorsa Indirizzo.

Configurazione degli indirizzi IP stateful durante la creazione del MIG

Utilizza la console Google Cloud , gcloud CLI, Terraform o REST.

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Seleziona il progetto e fai clic su Continua.

  3. Fai clic su Crea gruppo di istanze.

  4. Seleziona Nuovo gruppo di istanze gestite (stateful).

  5. Specifica un Nome per il gruppo di istanze.

  6. Seleziona un Modello di istanza

  7. In Numero di istanze, specifica il numero di istanze che vuoi includere nel gruppo di istanze gestite.

  8. In Configurazione stateful, espandi l'IP esterno e l'IP interno che vuoi rendere stateful.

    1. In Stateful, seleziona .
    2. Dal menu a discesa Con l'eliminazione definitiva dell'istanza, seleziona l'azione da eseguire sull'indirizzo IP stateful quando l'istanza VM viene eliminata. Le opzioni disponibili sono:
      • Scollega IP: (Valore predefinito) Annulla l'assegnazione dell'indirizzo al momento dell'eliminazione dell'istanza e mantiene l'indirizzo prenotato.
      • Elimina IP: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.
    3. Quando hai completato la configurazione stateful, fai clic su Fine.
  9. Fai clic su Crea.

gcloud

Quando crei un MIG, per specificare quali indirizzi IP nelle interfacce di rete del modello di istanza devono essere stateful, utilizza uno o più dei seguenti flag con il comando gcloud compute instance-groups managed create:

  • --stateful-internal-ip per contrassegnare un indirizzo IP interno di una determinata interfaccia di rete come stateful.
  • --stateful-external-ip per contrassegnare un indirizzo IP esterno di una determinata interfaccia di rete come stateful.
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --instance-redistribution-type NONE \
    --stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG da creare.
  • INSTANCE_TEMPLATE: il nome del modello di istanza da utilizzare per la creazione di nuove istanze.
  • SIZE: il numero iniziale di istanze necessarie in questo gruppo.
  • NI_NAME: (Facoltativo) Il nome dell'interfaccia di rete. Se non viene fornito, l'opzione enabled è obbligatoria e per impostazione predefinita viene presupposta l'interfaccia di rete principale denominata nic0. Se hai più interfacce di rete, puoi specificare questo flag per ciascun IP in ogni interfaccia di rete.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per la risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • never: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • on-permanent-instance-deletion: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

Esempio

Devi creare un gruppo di istanze VM a livello di regione con indirizzi IP interni statici per la rete predefinita e le reti personalizzate e indirizzi IP esterni statici solo per la rete predefinita. Vuoi che gli indirizzi vengano assegnati automaticamente, ma devono essere conservati durante gli eventi di riparazione automatica, aggiornamento e ricreazione delle istanze. Archivi la configurazione delle istanze in un modello di istanza denominato node-template.

Per creare il gruppo, esegui questo comando:

gcloud compute instance-groups managed create example-group \
    --region us-east1 \
    --template node-template \
    --base-instance-name node \
    --instance-redistribution-type NONE \
    --size 3 \
    --stateful-internal-ip interface-name=nic0,auto-delete=on-permanent-instance-deletion
    --stateful-internal-ip interface-name=nic1,auto-delete=on-permanent-instance-deletion
    --stateful-external-ip enabled,auto-delete=on-permanent-instance-deletion

Gli IP interni nelle interfacce di rete nic0 e nic1 e l'IP esterno nell'interfaccia di rete nic0 sono configurati come stateful per tutte le istanze del gruppo. Il gruppo prenota automaticamente gli indirizzi IP interni ed esterni statici per ogni istanza. Poiché il flag auto-delete è impostato su on-permanent-instance-deletion, il gruppo eliminerà automaticamente le prenotazioni degli indirizzi IP statici quando elimini le istanze associate o l'intero gruppo.

Per verificare che gli IP interni nelle interfacce di rete nic0 e nic1 e l'IP esterno nell'interfaccia di rete nic0 siano configurati come stateful, esegui questo comando:

gcloud compute instance-groups managed describe example-group \
    --zone us-east1-c

L'output è simile al seguente:

baseInstanceName: node
...
name: example-group
...
statefulPolicy:
  preservedState:
    internalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
      nic1:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
    externalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
...

Come vedi, la policy stateful del gruppo dichiara come stateful gli IP interni nelle interfacce di rete nic0 e nic1 e gli IP esterni nell'interfaccia di rete nic0, con la regola per eliminare le prenotazioni di IP statici al momento dell'eliminazione definitiva dell'istanza.

Terraform

Se non hai già creato un modello di istanza che specifica il tipo di macchina, l'immagine disco di avvio, la rete e altre proprietà delle VM da applicare a ogni VM nel tuo MIG, crea un modello di istanza.

Quando crei un MIG, per specificare quali indirizzi IP nelle interfacce di rete del modello di istanza devono essere stateful, utilizza uno o più dei seguenti blocchi:

  • stateful_internal_ip per contrassegnare un indirizzo IP interno di una determinata interfaccia di rete come stateful.
  • stateful_external_ip per contrassegnare un indirizzo IP esterno di una determinata interfaccia di rete come stateful.

Il seguente esempio configura gli indirizzi IP stateful durante la creazione di un MIG a livello di regione. Per saperne di più sulla risorsa utilizzata nell'esempio, consulta Risorsa google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name               = "example-group"
  base_instance_name = "node"
  target_size        = 3
  region             = "us-east1"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  update_policy {
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  stateful_internal_ip {
    interface_name = "nic0"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
  stateful_internal_ip {
    interface_name = "nic1"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
  stateful_external_ip {
    interface_name = "nic0"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST

Quando crei un MIG, per specificare quali indirizzi IP nelle interfacce di rete del modello di istanza devono essere stateful, includi gli indirizzi nel campo statefulPolicy nel corpo della richiesta del metodo instanceGroupManagers.insert o regionInstanceGroupManagers.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      },
      "externalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  }
}

Sostituisci quanto segue:

  • PROJECT: l'ID progetto per la richiesta.
  • REGION: per i MIG a livello di regione, è la regione in cui si trova il gruppo. Per i MIG a livello di zona, sostituisci regions/REGION con zones/ZONE e specifica la zona in cui si trova il MIG.
  • NAME: il nome del MIG da creare.
  • INSTANCE_TEMPLATE: il nome del modello di istanza da utilizzare per la creazione di nuove istanze.
  • SIZE: il numero iniziale di istanze necessarie in questo gruppo.
  • NI_NAME: (Facoltativo) Il nome dell'interfaccia di rete. Se non viene fornito, l'opzione enabled è obbligatoria e per impostazione predefinita viene presupposta l'interfaccia di rete principale denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • NEVER: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • ON_PERMANENT_INSTANCE_DELETION: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

Esempio

Devi creare un gruppo di istanze VM a livello di regione con indirizzi IP interni statici per la rete predefinita e le reti personalizzate e indirizzi IP esterni statici solo per la rete predefinita. Vuoi che gli indirizzi vengano assegnati automaticamente, ma devono essere conservati durante gli eventi di riparazione automatica, aggiornamento e ricreazione delle istanze. Archivi la configurazione delle istanze in un modello di istanza denominato node-template.

Per creare il gruppo, utilizza il metodo regionInstanceGroupManagers.insert:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers

{
  "name": "example-group",
  "baseInstanceName": "node",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/node-template"
    }
  ],
  "targetSize": 3,
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
        "nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
      "externalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
    }
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  }
}

Gli IP interni nelle interfacce di rete nic0 e nic1 e gli IP esterni nell'interfaccia di rete nic0 sono configurati come stateful per tutte le istanze del gruppo. Il gruppo prenota automaticamente gli indirizzi IP interni ed esterni statici per ogni istanza. Poiché il campo auto-delete è impostato su ON_PERMANENT_INSTANCE_DELETION, il gruppo eliminerà automaticamente le prenotazioni degli indirizzi IP statici quando elimini le istanze associate o l'intero gruppo.

Utilizza il metodo regionInstanceGroupManagers.get per verificare che gli IP interni nelle interfacce di rete nic0 e nic1 e gli IP esterni nell'interfaccia di rete nic0 siano configurati nella policy stateful della nuova risorsa regionInstanceGroupManagers:

GET https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group

La risposta contiene la policy stateful configurata:

{
  "name": "example-group",
  "baseInstanceName": "node",
  ...
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
        "nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
      "externalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
    }
  }
  ...
}

Come vedi, la policy stateful del gruppo dichiara come stateful gli IP interni nelle interfacce di rete nic0 e nic1 e gli IP esterni nell'interfaccia di rete nic0, con la regola per eliminare le prenotazioni degli indirizzi IP statici associati al momento dell'eliminazione definitiva dell'istanza.

Impostazione e aggiornamento della configurazione stateful per gli indirizzi IP nel MIG esistente

Se esegui un workload su un MIG stateless (un MIG senza configurazione stateful) e il workload richiede indirizzi IP statici, puoi configurare gli indirizzi IP già assegnati alle istanze VM gestite in modo che diventino stateful. In questo modo, gli indirizzi IP delle VM esistenti vengono conservati durante gli eventi di riparazione automatica, aggiornamento e ricreazione delle istanze. Se vuoi, puoi mantenere le prenotazioni degli indirizzi IP statici dopo l'eliminazione delle istanze.

La configurazione di una policy stateful per gli indirizzi IP in un MIG esistente ti consente di:

  • Configurare gli indirizzi IP come stateful per tutte le istanze esistenti e future nel gruppo. In questo modo, gli indirizzi IP temporanei corrispondenti di tutte le istanze esistenti vengono promossi a indirizzi IP statici.
  • Aggiornare la configurazione stateful esistente per gli indirizzi IP.

Il MIG applica la configurazione aggiornata nella policy stateful automaticamente e in modo asincrono a tutte le istanze. Gli aggiornamenti alle configurazioni degli indirizzi IP in una policy stateful non causano interruzioni delle istanze VM in esecuzione. Per saperne di più, consulta Applicazione di aggiornamenti alla policy stateful.

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic sul nome del gruppo di istanze per cui vuoi specificare gli indirizzi IP stateful.

  3. Fai clic su Modifica per modificare il gruppo di istanze gestite.

  4. In Configurazione stateful, espandi l'IP esterno e l'IP interno che vuoi rendere stateful.

    1. In Stateful, seleziona .
    2. Dal menu a discesa Con l'eliminazione definitiva dell'istanza, seleziona l'azione da eseguire sull'indirizzo IP stateful quando l'istanza VM viene eliminata. Le opzioni disponibili sono:
      • Scollega IP: (Valore predefinito) Annulla l'assegnazione dell'indirizzo al momento dell'eliminazione dell'istanza e mantiene l'indirizzo prenotato.
      • Elimina IP: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.
    3. Quando hai aggiornato la configurazione stateful, fai clic su Fine.
    4. Fai clic su Salva per completare l'aggiornamento.

gcloud

Per specificare quali indirizzi IP devono essere stateful o per aggiornare la configurazione IP stateful per un MIG esistente, utilizza uno o più flag --stateful-internal-ip o --stateful-external-ip con il comando gcloud compute instance-groups managed update.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG da aggiornare.
  • NI_NAME: (Facoltativo) Il nome dell'interfaccia di rete. Se non viene fornito, l'opzione enabled è obbligatoria e per impostazione predefinita viene presupposta l'interfaccia di rete principale denominata nic0. Se hai più interfacce di rete, puoi specificare questo flag per ciascun IP in ogni interfaccia di rete.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • never: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • on-permanent-instance-deletion: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

Se un indirizzo IP specificato è già configurato nella policy stateful per una determinata interfaccia di rete, il comando aggiorna la configurazione.

Esempio

Devi esporre un file server in esecuzione su un MIG stateful denominato example-fs-group agli utenti esterni tramite indirizzi IP esterni statici. Le istanze nel gruppo hanno indirizzi IP esterni temporanei. Devi assicurarti che gli indirizzi IP vengano conservati in caso di riparazione automatica e aggiornamenti delle istanze, in modo che gli utenti esterni abbiano accesso continuo ai server tramite gli indirizzi IP pubblicati. Devi anche mantenere prenotati gli indirizzi IP per assicurare la continuità in caso di eliminazione involontaria del gruppo.

Aggiorna il MIG per definire gli indirizzi IP esterni come stateful utilizzando il seguente comando:

gcloud compute instance-groups managed update example-fs-group \
    --stateful-external-ip enabled

Di conseguenza, il gruppo promuove in modo asincrono gli indirizzi IP esterni temporanei nell'interfaccia di rete nic0 in indirizzi IP statici per tutte le istanze gestite.

Gli indirizzi IP esterni vengono ora conservati in caso di eventi di riparazione automatica, aggiornamento e ricreazione delle istanze. L'assegnazione delle prenotazioni degli indirizzi IP statici associati viene annullata e le prenotazioni vengono conservate quando viene eliminata l'istanza perché la regola auto-delete non specificata è impostata su never per impostazione predefinita.

Puoi verificare che l'IP esterno stateful sia configurato nella policy stateful eseguendo il comando gcloud compute instance-groups managed describe example-fs-group.

REST

Per specificare quali indirizzi IP devono essere stateful o per aggiornare la configurazione stateful degli IP per un MIG esistente, utilizza il metodo instanceGroupManagers.patch o regionInstanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      },
      "externalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT: l'ID progetto per la richiesta.
  • REGION: per i MIG a livello di regione, è la regione in cui si trova il gruppo. Per i MIG a livello di zona, sostituisci regions/REGION con zones/ZONE e specifica la zona in cui si trova il MIG.
  • NAME: il nome del MIG da creare.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • NEVER: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • ON_PERMANENT_INSTANCE_DELETION: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

Se un indirizzo IP specificato è già configurato nella policy stateful, il metodo applica una patch alla configurazione.

Esempio

Devi esporre un file server in esecuzione su un MIG stateful denominato example-fs-group agli utenti esterni tramite indirizzi IP esterni statici. Le istanze nel gruppo hanno indirizzi IP esterni temporanei. Devi assicurarti che gli indirizzi IP vengano conservati in caso di riparazione automatica e aggiornamenti delle istanze, in modo che gli utenti esterni abbiano accesso continuo ai server tramite l'interfaccia di rete pubblicata. Devi anche mantenere prenotati gli indirizzi IP per assicurare la continuità in caso di eliminazione involontaria del gruppo.

Applica la patch al MIG per definire gli indirizzi IP esterni come stateful:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-fs-group

{
  "statefulPolicy": {
    "preservedState": {
      "externalIPs": {
        "nic0": {"autoDelete": "NEVER" }
      }
    }
  }
}

Di conseguenza, il gruppo promuove in modo asincrono gli indirizzi IP esterni temporanei nell'interfaccia di rete nic0 in indirizzi IP statici per tutte le istanze gestite.

Gli indirizzi IP esterni vengono ora conservati in caso di eventi di riparazione automatica, aggiornamento e ricreazione delle istanze. L'assegnazione delle prenotazioni degli indirizzi IP statici associati viene annullata e le prenotazioni vengono conservate in caso di eliminazione dell'istanza perché la regola autoDelete è impostata su NEVER.

Verifica che l'indirizzo IP esterno sia configurato nella policy stateful visualizzando la risorsa regionInstanceGroupManagers, restituita dal metodo regionInstanceGroupManagers.get.

Dichiarazione di indirizzi IP precedentemente stateful come stateless

Potrebbe essere necessario configurare un indirizzo IP stateful in modo che diventi temporaneo, ad esempio per i seguenti motivi:

  • Hai ridefinito l'architettura dell'app in modo che non si basi più su indirizzi IP statici.
  • Hai configurato l'IP come stateful per errore e vuoi ripristinarlo.

Puoi rimuovere la configurazione IP stateful dalla policy stateful del gruppo per dichiarare un indirizzo IP all'interno di una determinata interfaccia di rete come temporaneo per tutte le istanze gestite.

Quando rimuovi la configurazione IP stateful dalla policy stateful, il MIG rimuove in modo automatico e asincrono gli indirizzi IP dallo stato conservato di tutte le istanze del gruppo. Questa operazione non interrompe le istanze VM in esecuzione. Gli indirizzi IP rimangono attivi nelle istanze, ma non sono più stateful. Quando ricrei o aggiorni le istanze o quando vengono riparate automaticamente, il MIG annulla l'assegnazione degli indirizzi IP statici associati e assegna automaticamente indirizzi temporanei. Se non hai più bisogno di mantenere le prenotazioni degli indirizzi IP esterni statici, ora puoi rilasciarle.

Per saperne di più, leggi i seguenti documenti:

Console

  1. Nella console Google Cloud , vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Fai clic sul nome del gruppo di istanze da cui vuoi rimuovere la configurazione stateful per gli indirizzi IP.

  3. Fai clic su Modifica per modificare il gruppo di istanze gestite.

  4. In Configurazione stateful, espandi l'IP esterno e l'IP interno che vuoi rendere stateless.

    1. Imposta l'opzione Stateful su No.
    2. Fai clic su Fine.
  5. Dopo avere apportato le modifiche, fai clic su Salva.

gcloud

Per specificare quali indirizzi IP della policy stateful di un MIG rendere temporanei, utilizza il flag --remove-stateful-internal-ips o --remove-stateful-external-ips con il comando gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
    --remove-stateful-external-ips NI_NAME[,NI_NAME,...]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG da aggiornare.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.

Se devi trasformare un indirizzo IP stateful dell'interfaccia di rete principale predefinita denominata nic0 in un indirizzo IP temporaneo, puoi anche utilizzare il seguente comando:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --stateful-internal-ip disabled \
    --stateful-external-ip disabled

Esempio

La tua applicazione è stata esposta agli utenti tramite gli indirizzi IP esterni statici pubblicati delle istanze VM in un MIG denominato example-group. Hai riprogettato l'architettura del servizio eseguendo il deployment di un bilanciatore del carico prima del MIG e reindirizzando il traffico alle VM gestite tramite questo bilanciatore. Non devi più gestire gli indirizzi IP esterni statici e vorresti rendere temporanei gli indirizzi IP esterni delle VM.

Per rendere temporanei gli indirizzi IP esterni stateful delle VM in un MIG, esegui questo comando:

gcloud compute instance-groups managed update example-group \
    --remove-stateful-external-ips nic0

Il MIG rimuove in modo automatico e asincrono gli indirizzi IP esterni statici dell'interfaccia di rete nic0 dallo stato conservato di tutte le istanze del gruppo. Gli indirizzi IP esterni rimangono attivi nelle istanze, ma non sono più stateful. Quando ricrei o aggiorni le istanze o quando vengono riparate automaticamente, il MIG annulla l'assegnazione degli indirizzi IP statici associati e assegna automaticamente indirizzi temporanei. Se non hai più bisogno di mantenere le prenotazioni degli indirizzi IP esterni statici, ora puoi rilasciarle.

REST

Per specificare quali indirizzi IP della policy stateful di un MIG rendere temporanei, rimuovi la configurazione di ciascun IP dalla policy stateful del MIG utilizzando il metodo instanceGroupManagers.patch o regionInstanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": null
      },
      "externalIPs": {
        "NI_NAME": null
      }
    }
  }
}

Sostituisci quanto segue:

  • PROJECT: l'ID progetto per la richiesta.
  • REGION: per i MIG a livello di regione, è la regione in cui si trova il gruppo. Per i MIG a livello di zona, sostituisci regions/REGION con zones/ZONE e specifica la zona in cui si trova il MIG.
  • INSTANCE_GROUP_NAME: il nome del MIG da creare.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.

Esempio

La tua applicazione è stata esposta agli utenti tramite gli indirizzi IP esterni statici pubblicati delle istanze VM in un MIG denominato example-group. Hai riprogettato l'architettura del servizio eseguendo il deployment di un bilanciatore del carico prima del MIG e reindirizzando il traffico alle VM gestite tramite questo bilanciatore. Non devi più gestire gli indirizzi IP esterni statici e vorresti rendere temporanei gli indirizzi IP esterni delle VM.

Per rendere temporanei gli indirizzi IP esterni stateful delle VM in un MIG, applica una patch al MIG:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group

{
  "statefulPolicy": {
    "preservedState": {
      "externalIPs": {
        "nic0": null
      }
    }
  }
}

Il MIG rimuove in modo automatico e asincrono gli indirizzi IP esterni statici dell'interfaccia di rete nic0 dallo stato conservato di tutte le istanze del gruppo. Gli indirizzi IP esterni rimangono attivi nelle istanze, ma non sono più stateful. Quando ricrei o aggiorni le istanze o quando vengono riparate automaticamente, il MIG annulla l'assegnazione degli indirizzi IP statici associati e assegna automaticamente indirizzi temporanei. Se non hai più bisogno di mantenere le prenotazioni degli indirizzi IP esterni statici, ora puoi rilasciarle.

Configurazione individuale degli indirizzi IP stateful per le VM in un MIG

La configurazione individuale degli indirizzi IP stateful per le VM in un MIG è utile nei seguenti scenari:

  • Migrazione dei workload esistenti (trasferendo gli indirizzi IP statici prenotati esistenti) da istanze VM autonome a MIG stateful per usufruire della riparazione automatica e degli aggiornamenti automatizzati.
  • Assegnazione di indirizzi IP statici prenotati specifici richiesti dall'architettura o dalla configurazione del workload.

Configurazione degli indirizzi IP statici durante la creazione di una VM in un MIG

Puoi prenotare e assegnare indirizzi IP statici a istanze specifiche quando le crei singolarmente in un MIG. Questa operazione è utile per eseguire la migrazione di un'applicazione stateful da VM autonome esistenti a un MIG stateful in una situazione in cui l'architettura, la configurazione o gli utenti fanno affidamento su indirizzi IP statici specifici.

Quando crei manualmente un'istanza in un MIG e fornisci un indirizzo IP statico, il MIG esegue le azioni riportate di seguito:

  1. Crea una prenotazione per indirizzi IP statici interni o esterni per gli indirizzi IP forniti, se non esistono ancora.
  2. Crea un'istanza dal modello di istanza utilizzando gli indirizzi IP e il nome dell'istanza forniti.
  3. Crea una configurazione per istanza con la configurazione stateful fornita per gli indirizzi IP.

gcloud

Per creare un'istanza con un indirizzo IP statico predefinito, utilizza il comando gcloud compute instance-groups managed create-instance con uno o più dei seguenti flag:

  • --stateful-internal-ip per impostare un indirizzo IP interno statico di una determinata interfaccia di rete.
  • --stateful-external-ip per impostare un indirizzo IP esterno statico di una determinata interfaccia di rete.
gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG.
  • INSTANCE_NAME: il nome dell'istanza da creare.
  • NI_NAME: (Facoltativo) Il nome dell'interfaccia di rete. Se non viene fornito, per impostazione predefinita viene presupposta l'interfaccia di rete principale denominata nic0. Se hai più interfacce di rete, puoi specificare questo flag per ogni IP in ciascuna interfaccia di rete.
  • ADDRESS: (Obbligatorio) L'indirizzo IP statico da assegnare all'istanza in uno dei seguenti formati:

    • Indirizzo. URL di una prenotazione di un indirizzo IP statico, ad esempio: "projects/example-project/regions/us-east1/addresses/example-ip-name".
    • Valore letterale, ad esempio: "130.211.181.55".
      • Se l'indirizzo IP fornito non è ancora prenotato, il MIG crea automaticamente una prenotazione dell'indirizzo IP corrispondente.
      • Se l'indirizzo IP fornito è prenotato, il MIG assegna la prenotazione all'istanza.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • never: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • on-permanent-instance-deletion: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

Esempio

Devi aggiungere un'altra istanza VM al cluster del server proxy, in esecuzione su un MIG denominato proxy-cluster. Hai creato una prenotazione di un indirizzo IP interno statico denominata proxy-node-03-ip e devi assegnarla al nuovo nodo. Vuoi mantenere la prenotazione dell'indirizzo IP anche se decidi di eliminare il nodo in futuro.

Esegui questo comando per creare il nodo:

gcloud compute instance-groups managed create-instance proxy-cluster \
    --instance proxy-node-03 \
    --stateful-internal-ip address="projects/example-project/regions/us-east1/addresses/proxy-node-03-ip",auto-delete=never

Il comando crea un'istanza denominata proxy-node-03, assegna all'istanza l'indirizzo IP interno statico fornito denominato proxy-node-03-ip e archivia la configurazione stateful per l'IP nella configurazione per istanza corrispondente. Poiché il flag auto-delete è impostato su never, l'IP rimane prenotato anche se elimini l'istanza in un secondo momento.

Terraform

Per creare una VM con un indirizzo IP statico predefinito, utilizza uno o più dei seguenti blocchi:

  • preserved_state.internal_ip per contrassegnare un indirizzo IP interno di una determinata interfaccia di rete come stateful.
  • preserved_state.external_ip per contrassegnare un indirizzo IP esterno di una determinata interfaccia di rete come stateful.

L'esempio seguente configura gli indirizzi IP statici durante la creazione di una VM in un MIG a livello di regione. Per saperne di più sulla risorsa utilizzata nell'esempio, consulta Risorsa google_compute_region_per_instance_config. Per un MIG a livello di zona, utilizza la risorsa google_compute_per_instance_config.

resource "google_compute_region_per_instance_config" "default" {
  region_instance_group_manager = google_compute_region_instance_group_manager.default.name
  region                        = google_compute_region_instance_group_manager.default.region
  name                          = "proxy-node-03-ip"
  preserved_state {
    internal_ip {
      interface_name = "nic0"
      auto_delete    = "NEVER"
      ip_address {
        address = google_compute_address.default.id
      }
    }
  }
}

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

REST

Per creare una o più istanze in un MIG, impostare nomi delle istanze personalizzati e assegnare indirizzi IP statici predefiniti a queste istanze, utilizza il metodo instanceGroupManagers.createInstances o regionInstanceGroupManagers.createInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances

{
  "instances": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      }
    },
    ...
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per la richiesta.
  • NAME: il nome del MIG.
  • REGION: per i MIG a livello di regione, è la regione in cui si trova il gruppo. Per i MIG a livello di zona, sostituisci regions/REGION con zones/ZONE e specifica la zona in cui si trova il MIG.
  • INSTANCE_NAME: il nome dell'istanza da creare.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.
  • ADDRESS: (Facoltativo) L'indirizzo IP statico da assegnare all'istanza sotto forma di URL di una prenotazione di indirizzo IP statico, ad esempio: "projects/example-project/regions/us-east1/addresses/example-ip-name". Quando assegni un indirizzo IP statico, devi e puoi impostare un solo campo alla volta, address o literal.
  • LITERAL: (Facoltativo) L'indirizzo IP statico da assegnare all'istanza nel formato letterale, ad esempio: "130.211.181.55". Quando assegni un indirizzo IP statico, devi e puoi impostare un solo campo alla volta, address o literal.
    • Se l'indirizzo IP letterale fornito non è ancora prenotato, il MIG crea automaticamente una prenotazione dell'indirizzo IP corrispondente.
    • Se l'indirizzo IP letterale fornito è prenotato, il MIG assegna la prenotazione all'istanza.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • NEVER: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • ON_PERMANENT_INSTANCE_DELETION: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

Esempio

Devi aggiungere un'altra istanza VM al cluster del server proxy, in esecuzione su un MIG denominato proxy-cluster. Hai creato una prenotazione di un indirizzo IP interno statico denominata proxy-node-03-ip e devi assegnarla al nuovo nodo. Vuoi mantenere la prenotazione dell'indirizzo IP anche se decidi di eliminare il nodo in futuro.

Chiama il metodo regionInstanceGroupManagers.createInstances per creare un'istanza aggiuntiva:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/proxy-cluster/createInstances

{
  "instances": [
    {
      "name": "proxy-node-03",
      "preservedState" : {
        "internalIPs": {
          "nic0" : {
            "ipAddress": {
              "address": "projects/example-project/regions/us-east1/addresses/proxy-node-03-ip"
            },
            "autoDelete": "NEVER"
          }
        }
      }
    }
  ]
}

Il metodo crea un'istanza denominata proxy-node-03, assegna all'istanza l'indirizzo IP interno statico fornito denominato proxy-node-03-ip e archivia la configurazione stateful per l'IP nella configurazione per istanza corrispondente. Poiché il campo autoDelete è impostato su NEVER, l'IP rimane prenotato anche se elimini l'istanza in un secondo momento.

Configurazione degli indirizzi IP statici per una VM esistente in un MIG

Puoi impostare un indirizzo IP statico predefinito o aggiornare la configurazione IP stateful per un'istanza gestita singolarmente, ad esempio:

  • Assegna un indirizzo IP statico a un'istanza esistente in un MIG. Per gli IP esterni statici, l'operazione richiede di aggiornare l'istanza, mentre per gli IP interni statici è necessario ricrearla.
  • Aggiorna la regola di eliminazione per un indirizzo IP statico già assegnato. Questa operazione può essere eseguita senza interrompere l'istanza in esecuzione.

Per un'istanza esistente senza un indirizzo IP esterno, per la quale configuri un IP stateful esterno, il MIG aggiunge la configurazione di accesso all'interfaccia di rete corrispondente con i seguenti valori predefiniti:

"accessConfigs": [
  {
    "kind": "compute#accessConfig",
    "name": "External Nat",
    "natIP": "XX.XX.XX.XX",
    "networkTier": "PREMIUM",
    "type": "ONE_TO_ONE_NAT"
  }
]

gcloud

Per configurare singolarmente un indirizzo IP stateful per un'istanza VM in un MIG, aggiungi o aggiorna la configurazione dell'IP stateful nella configurazione per istanza associata.

Se non esiste ancora una configurazione per istanza per l'istanza, utilizza il comando gcloud compute instance-groups managed instance-configs create con uno o più dei seguenti flag:

  • --stateful-internal-ip per impostare un indirizzo IP interno statico di una determinata interfaccia di rete.
  • --stateful-external-ip per impostare un indirizzo IP esterno statico di una determinata interfaccia di rete.
gcloud compute instance-groups managed instance-configs create INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    [--no-update-instance | --update-instance]
    [--instance-update-minimal-action MINIMAL_ACTION]

Se per l'istanza esiste già una configurazione per istanza, utilizza il comando gcloud compute instance-groups managed instance-configs update con uno o più flag --stateful-internal-ip o --stateful-external-ip:

gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    [--no-update-instance | --update-instance]
    [--instance-update-minimal-action MINIMAL_ACTION]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG.
  • INSTANCE_NAME: il nome dell'istanza per la quale configurare gli indirizzi IP stateful.
  • NI_NAME: (Facoltativo) Il nome dell'interfaccia di rete. Se non viene fornito, per impostazione predefinita viene presupposta l'interfaccia di rete principale denominata nic0. Se hai più interfacce di rete, puoi specificare questo flag per ogni IP in ciascuna interfaccia di rete.
  • ADDRESS: l'indirizzo IP statico da assegnare all'istanza in uno dei seguenti formati:
    • Indirizzo. URL di una prenotazione di un indirizzo IP statico, ad esempio: "projects/example-project/regions/us-east1/addresses/example-ip-name".
    • Valore letterale. Ad esempio: "130.211.181.55".
      • Se l'indirizzo IP fornito non è ancora prenotato, il MIG crea automaticamente una prenotazione dell'indirizzo IP corrispondente.
      • Se l'indirizzo IP fornito è prenotato, il MIG assegna la prenotazione all'istanza.
    • Questo flag secondario è facoltativo se l'indirizzo è già definito nella configurazione per istanza dell'istanza. Altrimenti, è obbligatorio.
    • Se omesso, l'indirizzo configurato rimane invariato.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • never: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • on-permanent-instance-deletion: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.
    • Se omesso, il valore predefinito viene impostato per una nuova configurazione IP stateful; il valore rimane invariato in una configurazione esistente.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

  • --update-instance: (Facoltativo. Valore predefinito) Applica immediatamente le modifiche all'istanza. Se utilizzi il flag --no-update-instance, le modifiche rimangono non applicate e verranno applicate quando ricrei o applichi l'aggiornamento all'istanza in un secondo momento.

  • MINIMAL_ACTION: (Facoltativo) Esegue almeno l'azione specificata quando all'istanza viene applicato l'aggiornamento della configurazione per istanza. Deve essere utilizzato insieme al flag --update-instance. Il valore deve essere uno dei seguenti:

    • none: nessuna azione.
    • refresh: applica gli aggiornamenti che è possibile applicare senza arrestare l'istanza.
    • restart: arresta l'istanza e la riavvia.
    • replace: ricrea l'istanza.

Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.

Esempio

Hai un'istanza file server denominata file-server, che è una singola istanza in un MIG stateful denominato fs-group. Il gruppo ha una configurazione per istanza corrispondente, in cui è configurato un disco dati stateful. Il file server finora era accessibile solo internamente, ma ora degli utenti devono accedere esternamente tramite un indirizzo IP statico. Hai prenotato l'IP esterno statico creando una prenotazione dell'indirizzo file-server-ip. Ora devi assegnare questo IP all'istanza file server.

Esegui questo comando per configurare l'IP esterno stateful per l'istanza file server:

gcloud compute instance-groups managed instance-configs update fs-group \
    --instance file-server \
    --stateful-external-ip interface-name=nic0,address="projects/example-project/regions/us-east1/addresses/file-server-ip",auto-delete=never \
    --update-instance

Il comando esegue queste operazioni:

  1. Aggiorna la configurazione per istanza per l'istanza file-server:
    1. Aggiunge la configurazione dell'IP esterno stateful, che punta alla prenotazione dell'indirizzo file-server-ip.
    2. Mantiene invariata la configurazione del disco dati stateful esistente.
  2. Applica immediatamente l'aggiornamento della configurazione per istanza all'istanza file-server perché è incluso il flag --update-instance: aggiorna l'istanza e assegna l'indirizzo IP esterno statico dalla prenotazione file-server-ip.

REST

Per configurare gli IP stateful singolarmente per le istanze VM in un MIG, aggiungi o aggiorna la configurazione degli IP stateful nelle configurazioni per istanza associate.

Se non esistono ancora configurazioni per istanza per le istanze in questione, utilizza il metodo instanceGroupManagers.updatePerInstanceConfigs o il metodo regionInstanceGroupManagers.updatePerInstanceConfigs con configurazione stateful per uno o più indirizzi IP:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Se esistono già configurazioni per istanza per le istanze in questione, utilizza il metodo instanceGroupManagers.patchPerInstanceConfigs o il metodo regionInstanceGroupManagers.patchPerInstanceConfigs con configurazione stateful per uno o più indirizzi IP:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per la richiesta.
  • NAME: il nome del MIG.
  • REGION: per i MIG a livello di regione, è la regione in cui si trova il gruppo. Per i MIG a livello di zona, sostituisci regions/REGION con zones/ZONE e specifica la zona in cui si trova il MIG.
  • INSTANCE_NAME: (Obbligatorio) Il nome dell'istanza per la quale configurare gli IP stateful.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.
  • ADDRESS: (Facoltativo) L'indirizzo IP statico da assegnare all'istanza sotto forma di URL di una prenotazione di indirizzo IP statico, ad esempio: "projects/example-project/regions/us-east1/addresses/example-ip-name". Quando assegni un indirizzo IP statico, devi e puoi impostare un solo campo alla volta, o indirizzo o valore letterale.
  • LITERAL: (Facoltativo) L'indirizzo IP statico da assegnare all'istanza nel formato letterale. Ad esempio: "130.211.181.55". Quando assegni un indirizzo IP statico, devi e puoi impostare un solo campo alla volta, o indirizzo o valore letterale.
    • Se l'indirizzo IP letterale fornito non è ancora prenotato, il MIG crea automaticamente una prenotazione dell'indirizzo IP corrispondente.
    • Se l'indirizzo IP letterale fornito è prenotato, il MIG assegna la prenotazione all'istanza.
  • DELETE_RULE: (Facoltativo) Stabilisce la gestione prevista per una risorsa Indirizzo statica associata quando un'istanza VM viene eliminata definitivamente. Le opzioni disponibili sono le seguenti:

    • NEVER: (Valore predefinito) L'indirizzo IP statico non viene mai eliminato. L'assegnazione dell'indirizzo viene annullata in caso di eliminazione dell'istanza e l'indirizzo rimane prenotato.
    • ON_PERMANENT_INSTANCE_DELETION: elimina la prenotazione dell'indirizzo IP statico quando un'istanza viene eliminata definitivamente dal gruppo di istanze, ad esempio quando elimini un'istanza manualmente o diminuisci le dimensioni del gruppo.
    • Se omesso, il valore predefinito viene impostato per una nuova configurazione IP stateful; il valore rimane invariato in una configurazione esistente.

    Indipendentemente dal valore della regola di eliminazione, il gruppo conserva sempre gli indirizzi IP stateful in caso di riparazione automatica, aggiornamento e ricreazione delle istanze.

  • FINGERPRINT: (Facoltativo) L'impronta per la configurazione specificata, se esistente. Utilizzata per il blocco ottimistico. L'operazione non riesce se l'impronta è diversa da quella fornita, in quanto questo indica che la configurazione per istanza è stata modificata dall'ultima lettura. Per visualizzare l'impronta più recente, consulta l'output del metodo listPerInstanceConfigs per un MIG a livello di regione o a livello di zona. Se fingerprint viene omesso, l'operazione procede senza il confronto delle impronte.

I metodi updatePerInstanceConfigs e patchPerInstanceConfigs aggiornano le configurazioni per istanza specificate, ma non applicano gli aggiornamenti della configurazione alle istanze gestite associate. Le modifiche vengono applicate a un'istanza quando al MIG viene chiesto di ricrearla o aggiornarla. Puoi applicare l'aggiornamento manualmente per applicare le modifiche a un'istanza.

Esempio

Hai un'istanza file server denominata file-server, che è una singola istanza in un MIG stateful denominato fs-group. Il gruppo ha una configurazione per istanza corrispondente, in cui è configurato un disco dati stateful. Il file server finora era accessibile solo internamente, ma ora degli utenti devono accedere esternamente tramite un indirizzo IP statico. Hai prenotato l'IP esterno statico creando una prenotazione dell'indirizzo file-server-ip. Ora devi assegnare questo IP all'istanza file server.

Per aggiornare la configurazione per istanza di file-server con il nuovo IP esterno stateful, chiama il metodo patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/fs-group/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "file-server",
      "preservedState" : {
        "externalIPs": {
          "nic0" : {
            "ipAddress": {
              "address": "projects/example-project/regions/us-east1/addresses/file-server-ip"
            },
            "autoDelete": "NEVER"
          }
        }
      }
    }
  ]
}

Il metodo applica patch alla configurazione per istanza per l'istanza file-server:

  1. Aggiunge la configurazione dell'IP esterno stateful, che punta alla prenotazione dell'indirizzo file-server-ip.
  2. Mantiene invariata la configurazione del disco dati stateful esistente.

L'aggiornamento della configurazione non è stato ancora applicato all'istanza VM file-server. Il MIG applicherà l'aggiornamento della configurazione quando ricrei o applichi l'aggiornamento all'istanza in un secondo momento.

Per applicare l'aggiornamento della configurazione per istanza all'istanza VM file-server, chiama il metodo regionInstanceGroupManagers.applyUpdatesToInstances per l'istanza:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/gs-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-b/instances/file-server"]
}

Il metodo assegna all'istanza gestita l'indirizzo IP esterno statico configurato dalla prenotazione file-server-ip. Il metodo aggiorna l'istanza file-server per assegnare un indirizzo IP esterno.

Poiché autoDelete è impostato su NEVER nella configurazione IP stateful, l'IP rimarrà prenotato se elimini l'istanza in un secondo momento.

Annullamento dell'associazione degli indirizzi IP statici a una VM esistente in un MIG

Potrebbe essere necessario l'associazione di un indirizzo IP statico a una VM esistente, rendendo così temporanea l'interfaccia di rete per la VM. Questa opzione è utile nei seguenti scenari:

  • Hai ridefinito l'architettura dell'app in modo che non si basi più su indirizzi IP statici.
  • Hai configurato l'IP come stateful per errore e vuoi ripristinarlo.

Puoi annullare l'associazione di un indirizzo IP statico a una VM esistente nel MIG e rendere l'indirizzo IP temporaneo per una singola VM rimuovendo la configurazione stateful dell'IP dalla configurazione per istanza associata o eliminando l'intera configurazione per istanza se non contiene altri stati. L'applicazione della modifica ha i seguenti effetti:

  • L'indirizzo IP rimane attivo nell'istanza, ma non è più stateful.
  • Quando ricrei o aggiorni l'istanza o quando viene eseguita la riparazione automatica dell'istanza, il MIG annulla l'assegnazione della prenotazione dell'indirizzo IP statico associato e assegna automaticamente un indirizzo temporaneo.
  • Dopo l'annullamento dell'assegnazione, l'indirizzo IP statico rimane prenotato.

La rimozione di una configurazione IP stateful da una configurazione per istanza non interrompe le istanze VM in esecuzione, a meno che tu non scelga esplicitamente di farlo.

Per saperne di più, consulta i seguenti documenti:

gcloud

Per rimuovere una configurazione IP stateful dalla configurazione per istanza associata, utilizza il comando gcloud compute instance-groups managed instance-configs update con i flag --remove-stateful-internal-ips o --remove-stateful-external-ips:

gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
    --remove-stateful-external-ips NI_NAME[,NI_NAME,...]
    [--no-update-instance | --update-instance] \
    [--instance-update-minimal-action MINIMAL_ACTION]

Sostituisci quanto segue:

  • INSTANCE_GROUP_NAME: il nome del MIG.
  • INSTANCE_NAME: (Obbligatorio) Il nome dell'istanza per la quale rimuovere la configurazione IP stateful.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.
  • --update-instance: (Facoltativo. Valore predefinito) Applica immediatamente le modifiche all'istanza. Se utilizzi il flag --no-update-instance, le modifiche rimangono non applicate e verranno applicate quando ricrei o applichi l'aggiornamento all'istanza in un secondo momento.
  • MINIMAL_ACTION: (Facoltativo) Esegue almeno l'azione specificata quando all'istanza viene applicato l'aggiornamento della configurazione per istanza. Questo flag può essere utilizzato solo insieme al flag --update-instance. Il valore deve essere uno dei seguenti:

    • none: nessuna azione.
    • refresh: applica gli aggiornamenti che è possibile applicare senza arrestare l'istanza.
    • restart: arresta l'istanza e la riavvia.
    • replace: ricrea l'istanza.

    Se omesso, viene utilizzata l'azione meno invasiva richiesta dall'aggiornamento.

Esempio

La tua applicazione è stata esposta agli utenti tramite indirizzi IP esterni statici specifici pubblicati delle istanze VM in un MIG denominato example-group. Hai riprogettato l'architettura del servizio eseguendo il deployment di un bilanciatore del carico prima del MIG e reindirizzando il traffico alle VM gestite tramite questo bilanciatore. Non devi più gestire gli indirizzi IP esterni statici e vorresti rendere temporanei gli indirizzi IP esterni delle VM.

Per rendere temporanei gli indirizzi IP esterni stateful delle VM in un MIG, esegui questo comando per ogni istanza, ad esempio per node-1:

gcloud compute instance-groups managed instance-configs update example-group \
    --instance node-1 \
    --remove-stateful-external-ips nic0 \
    --update-instance

Il comando esegue queste operazioni:

  1. Rimuove la configurazione stateful per l'indirizzo IP esterno nell'interfaccia di rete nic0 dalla configurazione per istanza per node-1.
  2. Applica immediatamente l'aggiornamento della configurazione per istanza all'istanza VM node-1 perché è incluso il flag --update-instance. L'istanza VM non viene interrotta e continua a essere pubblicata dallo stesso IP, che non è più stateful. Il MIG rimuove il riferimento alla prenotazione di un IP statico da preservedStateFromConfig dell'istanza gestita e tratta l'indirizzo IP esterno come temporaneo. Il MIG assegna automaticamente un IP esterno ai successivi eventi di ricreazione, aggiornamento o riparazione automatica delle istanze.
  3. Dopo l'annullamento dell'assegnazione, l'IP statico originale rimane prenotato. Puoi rilasciare l'IP se non ti serve più.

REST

Per rimuovere una configurazione IP stateful dalla configurazione per istanza associata, utilizza il metodo instanceGroupManagers.patchPerInstanceConfigs o il metodo regionInstanceGroupManagers.patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : null
        },
        "externalIPs": {
          "NI_NAME" : null
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto per la richiesta.
  • NAME: il nome del MIG.
  • REGION: per i MIG a livello di regione, è la regione in cui si trova il gruppo. Per i MIG a livello di zona, sostituisci regions/REGION con zones/ZONE e specifica la zona in cui si trova il MIG.
  • INSTANCE_NAME: (Obbligatorio) Il nome dell'istanza per la quale rimuovere la configurazione IP stateful.
  • NI_NAME: (Obbligatorio) Il nome dell'interfaccia di rete. L'interfaccia di rete principale è denominata nic0. Se hai più interfacce di rete, puoi specificare più NI_NAMES.
  • FINGERPRINT: (Facoltativo) L'impronta per la configurazione specificata, se esistente. Utilizzata per il blocco ottimistico. L'operazione non riesce se l'impronta è diversa da quella fornita, in quanto questo indica che la configurazione per istanza è stata modificata dall'ultima lettura. Per visualizzare l'impronta più recente, consulta l'output del metodo listPerInstanceConfigs per un MIG a livello di regione o a livello di zona. Se fingerprint viene omesso, l'operazione procede senza il confronto delle impronte.

Il metodo patchPerInstanceConfigs aggiorna le configurazioni per istanza specificate, ma non applica gli aggiornamenti della configurazione alle istanze gestite associate. Le modifiche vengono applicate a un'istanza quando al MIG viene chiesto di ricrearla o aggiornarla. Puoi applicare l'aggiornamento manualmente per applicare le modifiche a un'istanza.

Esempio

La tua applicazione è stata esposta agli utenti tramite indirizzi IP esterni statici specifici pubblicati delle istanze VM in un MIG denominato example-group. Hai riprogettato l'architettura del servizio eseguendo il deployment di un bilanciatore del carico prima del MIG e reindirizzando il traffico alle VM gestite tramite questo bilanciatore. Non devi più gestire gli indirizzi IP esterni statici e vorresti rendere temporanei gli indirizzi IP esterni delle VM.

Per rendere temporanei gli indirizzi IP esterni stateful delle VM in un MIG, esegui questo metodo per ogni istanza, ad esempio per node-1, e fornisci il valore null alla configurazione stateful dell'interfaccia di rete:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "node-1",
      "preservedState" : {
        "externalIPs": {
          "nic0" : null
        }
      }
    }
  ]
}

Il metodo rimuove la configurazione dell'indirizzo IP stateful nell'interfaccia di rete nic0 dalla configurazione per istanza di node-1. L'aggiornamento della configurazione non è stato ancora applicato all'istanza VM node-1. Il MIG applica l'aggiornamento della configurazione la prossima volta che l'istanza viene ricreata o aggiornata.

Per applicare l'aggiornamento della configurazione per istanza all'istanza VM node-1, esegui il metodo regionInstanceGroupManagers.applyUpdatesToInstances per l'istanza:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-c/instances/node-1"]
}

Il MIG rimuove il riferimento alla prenotazione di un IP statico dal campo preservedStateFromConfig per l'istanza node-1 e tratta l'indirizzo IP come temporaneo. Il MIG assegna automaticamente un IP esterno ai successivi eventi di ricreazione, aggiornamento o riparazione automatica delle istanze.

Dopo l'annullamento dell'assegnazione, l'IP statico originale rimane prenotato. Puoi rilasciare l'IP se non ti serve più.

Rimozione della configurazione stateful

Per rimuovere la configurazione da una policy stateful per tutte le VM in un MIG consulta i seguenti documenti:

Per rimuovere la configurazione da una configurazione per istanza per una VM specifica in un MIG, consulta i seguenti documenti:

Eliminazione degli indirizzi IP statici inutilizzati

Quando configuri un indirizzo IP stateful per le istanze gestite in un gruppo, puoi scegliere se rilasciare le prenotazioni degli indirizzi IP statici associati manualmente o automaticamente quando un'istanza viene eliminata definitivamente:

  • Per rilasciare automaticamente le prenotazioni degli indirizzi IP statici al momento dell'eliminazione definitiva dell'istanza, imposta il parametro autoDelete su ON_PERMANENT_INSTANCE_DELETION.
  • Per rilasciare manualmente le prenotazioni degli indirizzi IP statici, imposta il parametro autoDelete su NEVER. Per eliminare le prenotazioni di indirizzi IP statici inutilizzati, ad esempio per evitare addebiti non necessari, consulta i seguenti documenti:

Se hai indicato al MIG di non eliminare mai le prenotazioni IP associate, gli indirizzi IP statici rimangono prenotati anche dopo che le istanze corrispondenti o il MIG non esistono più.

Feedback

Vogliamo conoscere i tuoi casi d'uso, le tue sfide e i tuoi feedback sui MIG stateful. Puoi condividere il tuo feedback con il nostro team all'indirizzo mig-discuss@google.com.

Passaggi successivi