Raggruppa le VM non gestite


Un gruppo di istanze non gestite è una raccolta di istanze di macchine virtuali (VM) che si trovano in un singolo progetto, zona, rete VPC e sottorete. Un gruppo di istanze non gestite è utile per raggruppare le VM che richiedono impostazioni di configurazione o ottimizzazione individuali. Puoi utilizzare un gruppo di istanze non gestite nel servizio di backend di un bilanciatore del carico.

Per le VM che richiedono impostazioni di configurazione coerenti, puoi utilizzare un gruppo di istanze (MIG) basato su un modello di istanza. Quando possibile, valuta l'utilizzo di gruppi di istanze gestite invece di quelli non gestiti. A per creare un gruppo di istanze gestite, Crea un gruppo di istanze gestite.

Puoi aggiungere entrambi i tipi di gruppi di istanze come backend a un bilanciatore del carico Google Cloud. Per ulteriori informazioni, consulta la panoramica di Cloud Load Balancing. Per il numero di VM per gruppo di istanze supportato da Cloud Load Balancing, consulta VM per gruppo di istanze.

Per saperne di più sui gruppi di istanze, consulta la Panoramica dei gruppi di istanze.

Prima di iniziare

  • Scopri la differenza tra i gruppi di istanze gestite e non gestite.
  • 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 autenticarti su 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. 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.

        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.

Utilizzo dei gruppi di istanze non gestite

Creazione di gruppi

A differenza dei gruppi di istanze gestite, i gruppi di istanze non gestite sono solo raccolte di VM distinte che non condividono un modello di istanza comune. Devi semplicemente creare un gruppo e aggiungere singole VM al gruppo.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Fai clic su Crea gruppo di istanze.
  3. Fai clic su Nuovo gruppo di istanze non gestite.
  4. Inserisci un nome per il gruppo di istanze non gestite.
  5. In Località, seleziona un'area geografica e una zona.
  6. Seleziona una rete e una subnet.
  7. In Istanze VM, seleziona le VM da aggiungere a questo gruppo.
  8. Fai clic su Crea.

gcloud

Per creare un nuovo gruppo di istanze non gestite, utilizza la colonna instance-groups non gestiti crea :

gcloud compute instance-groups unmanaged create instance-group-name \
    --zone=zone

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo in cui che vuoi creare.
  • zone: la zona in cui vuoi creare il gruppo.

REST

Per creare un gruppo di istanze non gestito con REST, invia una richiesta POST utilizzando il metodo instanceGroups.insert :

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups

{
   "name": "instance-group-name"
}

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo in cui che vuoi creare.
  • zone: la zona in cui vuoi creare il gruppo.
  • project-id: l'ID del progetto contenente il gruppo.

Quando crei un nuovo gruppo di istanze non gestite con Google Cloud CLI o REST, non vengono aggiunte automaticamente VM. Puoi aggiungere manualmente le VM al gruppo di istanze non gestite.

Elenco e descrizione dei gruppi

Recupera un elenco dei gruppi di istanze non gestite esistenti.

Console

Nella console Google Cloud, la pagina Gruppi di istanze elenca i gruppi di istanze gestite e non gestite esistenti.

Vai alla pagina Gruppi di istanze

gcloud

Per elencare tutti i gruppi di istanze non gestite nel tuo progetto con Google Cloud CLI, utilizza gruppi di istanze non gestiti elenco:

gcloud compute instance-groups unmanaged list

Per visualizzare le informazioni su uno specifico gruppo di istanze non gestite, utilizza gruppi di istanze non gestiti descrivi :

gcloud compute instance-groups unmanaged describe instance-group-name \
   --zone=zone

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo da descrivere.
  • zone: la zona del gruppo.

REST

Per elencare i gruppi di istanze con REST, invia una richiesta GET utilizzando il metodo instanceGroups.list:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups

Per ottenere informazioni su un gruppo di istanze non gestite specifico con l'API, invia una richiesta GET utilizzando il metodo instanceGroups.get:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo da descrivere.
  • zone: la zona del gruppo.
  • project-id: l'ID del progetto contenente il gruppo.

Eliminazione di gruppi

A differenza di un gruppo di istanze gestite, l'eliminazione di un gruppo di istanze non gestite non comporta l'eliminazione delle VM all'interno del gruppo. Eliminazione di un gruppo di istanze non gestite rimuove solo il raggruppamento logico delle VM.

Non puoi eliminare un gruppo di istanze se è un backend di un con il bilanciatore del carico di Google Cloud. Devi prima rimuovere il dal backend Google Cloud.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Seleziona uno o più gruppi di istanze non gestite dall'elenco.
  3. Fai clic su Elimina per rimuovere i gruppi. I gruppi vengono rimossi, ma Le VM nei gruppi non vengono eliminate.

gcloud

Per eliminare un gruppo di istanze non gestite, utilizza la colonna instance-groups non gestiti elimina :

gcloud compute instance-groups unmanaged delete instance-group-name \
    --zone=zone

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo che vuoi eliminare.
  • zone: la zona del gruppo.

REST

Per eliminare un gruppo di istanze non gestite con REST, invia un DELETE utilizzando instanceGroups.delete :

DELETE https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo che vuoi eliminare.
  • zone: la zona del gruppo.
  • project-id: l'ID del progetto contenente il gruppo.

Appartenenza al gruppo

Aggiunta di VM

Dopo aver creato un gruppo di istanze non gestite, puoi aggiungere VM al gruppo. Tuttavia, puoi raggruppare le VM solo se che la prima o l'unica interfaccia di rete (nic0) di ogni VM sia collegata sulla stessa rete VPC. Il numero massimo di VM che puoi aggiungere a un gruppo di istanze non gestito è 2000. Se vuoi aggiungere più di 2000 VM gruppo, contatta l'assistenza.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Nella colonna Nome dell'elenco, fai clic sul nome dell'istanza. gruppo in cui vuoi aggiungere le VM. Si apre una pagina con l'istanza delle proprietà del gruppo e un elenco di VM che fanno già parte del gruppo.
  3. Fai clic su Modifica per modificare questo gruppo di istanze non gestite.
  4. In Istanze VM, seleziona una o più VM esistenti da aggiungere al gruppo. Puoi selezionare solo VM che si trovano nella stessa zona la rete VPC e la subnet come VM esistenti.
  5. Fai clic su Salva per aggiungere le nuove VM al gruppo.

gcloud

Per aggiungere istanze a un gruppo di istanze non gestite, utilizza instance-groups non gestito add-instances :

gcloud compute instance-groups unmanaged add-instances instance-group-name \
    --zone=zone \
    --instances=list-of-VM-names

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo a cui vuoi aggiungere le VM.
  • zone: la zona del gruppo.
  • list-of-VM-names: un elenco di valori delimitato da virgole di VM nella stessa zona, nella stessa rete VPC e nella stessa subnet.

REST

Per aggiungere VM a un gruppo di istanze non gestito, invia una richiesta POST utilizzando il metodo instanceGroups.addInstances:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/addInstances

   {
      "instances": [
         {
         "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name",
         "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name",
         ....
         }
      ]
   }

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo a cui vuoi aggiungere le VM.
  • zone: la zona del gruppo.
  • project-id: l'ID del progetto contenente il gruppo.
  • instance-1-name e instance-2-name: i nomi delle VM, in formato la stessa zona, rete VPC e subnet che vuoi aggiungi al gruppo.

Elenco delle VM

Puoi recuperare un elenco di VM membri in un gruppo di istanze non gestite.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze non gestite che vuoi visualizzare. Viene visualizzata una pagina con l'elenco delle istanze incluse nel gruppo.

gcloud

Per elencare le VM in un gruppo di istanze non gestite, utilizza instance-groups non gestito list-instances :

gcloud compute instance-groups unmanaged list-instances instance-group-name \
   --zone=zone

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo il cui membri che vuoi elencare.
  • zone: la zona del gruppo.

REST

Per elencare le VM in un gruppo di istanze non gestito, invia una richiesta POST utilizzando il metodo instanceGroups.listInstances:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/listInstances

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo il cui membri che vuoi elencare.
  • zone: la zona del gruppo.
  • project-id: l'ID del progetto contenente il gruppo.

Rimozione delle VM

Puoi rimuovere le VM da un gruppo di istanze non gestite. La rimozione di una VM dal gruppo di istanze non comporta la sua eliminazione.

Console

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

    Vai alla pagina Gruppi di istanze

  2. Nella colonna Nome dell'elenco, fai clic sul nome dell'istanza. da cui vuoi rimuovere le VM. Si apre una pagina con l'istanza proprietà del gruppo e un elenco di VM incluse nel gruppo.
  3. Nell'elenco, seleziona una o più VM da rimuovere dal gruppo.
  4. Fai clic su Rimuovi dal gruppo. Le VM rimosse da un gruppo di istanze non gestito continuano a esistere ed essere eseguite, a meno che non le arresti o le elimini.

gcloud

Per rimuovere le VM da un gruppo di istanze non gestite, utilizza instance-groups non gestito remove-instances :

gcloud compute instance-groups unmanaged remove-instances instance-group-name \
    --zone=zone \
    --instances=list-of-VM-names

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo che contiene istanze da rimuovere.
  • zone: la zona del gruppo.
  • list-of-VM-names: un elenco delimitato da virgole delle VM da rimuovere dal gruppo.

REST

Per rimuovere le VM da un gruppo di istanze non gestito, invia una richiesta POST utilizzando il metodo instanceGroups.removeInstances. Puoi rimuovere contemporaneamente più VM come mostrato di seguito:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/removeInstances
{
    "instances": [
        {
        "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name",
        "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name",
        ....
        }
    ]
}

Sostituisci quanto segue:

  • instance-group-name: il nome del gruppo che contiene istanze da rimuovere.
  • zone: la zona del gruppo.
  • project-id: l'ID del progetto contenente il gruppo.
  • instance-1-name e instance-2-name: questi sono i nomi delle VM che vuoi annullare l'associazione al gruppo.

Utilizzo delle porte denominate

Le porte denominate sono coppie chiave-valore che rappresentano il nome e il numero di una porta. La il nome della porta rappresenta il nome di un servizio o di un'applicazione. Il numero di porta rappresenta la porta su cui viene eseguito il servizio o l'applicazione.

Le porte con nome vengono utilizzate da Cloud Load Balancing. I bilanciatori del carico che fungono da proxy si abbonano a una singola porta denominata nella configurazione del servizio di backend. Il nome della porta viene tradotto in un numero di porta in base alla mappatura della porta denominata del backend di ogni gruppo di istanze.

Ad esempio, un servizio di backend può eseguire la sottoscrizione a una porta denominata http-port. Il gruppo di istanze di backend può avere una porta denominata http-port:80. Il gruppo di istanze di backend indica al bilanciatore del carico di inviare traffico a una VM del gruppo sulla porta 80 utilizzando un protocollo (ad esempio TCP). Il protocollo è definito nel caricamento servizio di backend del bilanciatore del carico.

Le porte denominate sono semplici metadati utilizzati dai bilanciatori del carico proxy. Con nome Le porte non controllano le risorse di rete o firewall in Compute Engine.

Più numeri di porta per una porta denominata

Puoi assegnare più porte a ciascun nome di servizio. Puoi anche assegnare più nomi di servizi per ogni porta.

Tieni presente quanto segue:

  • Il traffico viene bilanciato tra tutte le porte con lo stesso nome.
  • Un determinato servizio di backend può inoltrare il traffico solo a una porta denominata alla volta.
  • Se utilizzi più numeri di porta per una porta denominata, le porte devono essere tutte per la stessa applicazione.

    Ad esempio, http:80,http:8080 funziona, ma http:80,http:443 non funziona perché la porta 80 in genere non supporta TLS.

Puoi assegnare più porte denominate in un gruppo di istanze. Per spiegarci meglio, Prendi in considerazione un servizio di backend di esempio che si abbona alla porta denominata http-port e che include due gruppi di istanza di backend:

  • instance-group-a con porta denominata http-port:80
  • instance-group-b con una porta denominata http-port:79

Questo servizio di backend invia il traffico alla porta 80 per le VM in instance-group-a e porta 79 per le VM in instance-group-b.

Quando aggiungi lo stesso gruppo di istanze a più servizi di backend (per più bilanciatori del carico) e il gruppo di istanze gestisce porte diverse su ciascun carico non aggiungere tutti i numeri di porta a una singola porta denominata. Crea invece una porta denominata univoca e mappala a un insieme di porte che ogni servizio di backend deve gestire.

Ad esempio, supponiamo che tu abbia tre applicazioni, ognuna con il proprio bilanciatore del carico. Ogni applicazione ha il proprio numero di porta: 81 per app1, 82 per app2 e 83 per app3. Supponendo che tutti e tre i servizi di backend siano utilizzando un gruppo di istanze comune, assegna le porte denominate per questo gruppo come [app1:81, app2:82, app3:83].

Porte denominate e controlli di integrità

Affinché una porta denominata con più numeri di porta su un servizio di backend funzioni in un bilanciatore del carico delle applicazioni esterno o interno, il controllo di integrità deve avere il flag --use-serving-port anziché un numero di porta specifico. Questa opzione non è disponibile nella console Google Cloud. Per impostare --use-serving-port, devi utilizzare il metodo Google Cloud CLI o l'API.

Ad esempio, supponiamo che tu abbia un'applicazione che bilancia il carico del traffico tre diverse porte (81, 82, 83) sullo stesso servizio di backend con un gruppo di istanze gestite. Puoi assegnare le porte per questi gruppi di istanze come [app:81, 82, 83]. Il controllo di integrità in questo scenario deve avere il flag --use-serving-port.

Per ulteriori informazioni, consulta la documentazione sul controllo di integrità del bilanciamento del carico.

Porte denominate e regole firewall

Le porte con nome non creano o modificano le regole del firewall di Google Cloud. Per consentire il traffico alle VM di backend, devi comunque le regole firewall necessarie.

Porte denominate e servizi di backend

Oltre alla configurazione del gruppo di istanze, devi configurare anche il servizio di backend. Ad esempio, supponiamo che tu abbia impostato la porta denominata su un'istanza gruppo con il nome my-service-name e la porta 8888:

gcloud compute instance-groups set-named-ports my-unmanaged-ig \
    --named-ports=my-service-name:8888

Quindi devi fare riferimento alla porta denominata nella configurazione del servizio di backend con --port-name sul servizio di backend impostato su my-service-name:

gcloud compute backend-services update my-backend-service \
    --port-name=my-service-name

Creazione di porte denominate

Console

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

    Vai a Gruppi di istanze

  2. Nella colonna Nome dell'elenco, fai clic sul nome dell'istanza. in cui specificare le porte denominate. Viene visualizzata una pagina con le proprietà del gruppo di istanze.
  3. Fai clic su Modifica per modificare questo gruppo di istanze non gestite.
  4. Nella sezione Mappatura delle porte, fai clic su Aggiungi porta e inserisci il nome e il numero della porta. Aggiungi o rimuovi altre porte denominate come necessaria.
  5. Fai clic su Salva per aggiornare l'elenco delle porte denominate per le porte non gestite. gruppo di istanze gestite.

gcloud

Per aggiungere porte denominate a un gruppo di istanze non gestito, utilizza il comando instance-groups unmanaged set-named-ports:

gcloud compute instance-groups unmanaged set-named-ports instance-group-name \
    --zone=zone \
    --named-ports=port-name:port-number,...

Per elencare le porte denominate in un gruppo di istanze non gestito, utilizza il comando instance-groups unmanaged get-named-ports:

Imposta una o più porte denominate utilizzando il comando set-named-ports:

gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
      --named-ports PORT_NAME:PORT,PORT_NAME:PORT

Ad esempio:

gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
      --named-ports name1:80,name2:8080

Per assegnare più porte al nome di ogni servizio o più nomi a ogni crea più di una voce per ogni nome o porta. Ad esempio, se le porte 10, 20 e 80 sono per la stessa applicazione, puoi assegnare name1 a tutte queste porte. Inoltre, puoi assegnare due nomi, name2 e name3 alla porta 8080. Infine, puoi assegnare la porta 9500 a name4, come nell'esempio seguente:

gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
      --named-ports name1:10,name1:20,name1:80,\
                    name2:8080,name3:8080,\
                    name4:9500

Per rimuovere tutte le porte denominate da un gruppo di istanze non gestito con Google Cloud CLI, utilizza instance-groups unmanaged set-named-ports con un elenco vuoto di porte denominate:

gcloud compute instance-groups unmanaged set-named-ports instance-group-name \
    --zone=zone \
    --named-ports=""

In tutti gli esempi precedenti, sostituisci quanto segue, se presente:

  • instance-group-name: il nome del gruppo di istanze.
  • zone: la zona del gruppo.
  • port-name e port-number: Il nome e il numero della porta rappresentano la mappatura di un nome scelto da te un numero di porta. Puoi specificare più mappature separate da virgole. Ad esempio, port-one:80,port-two:8080 è un elenco valido di porte con nome.

REST

  1. Descrivi il gruppo di istanze e prendi nota fingerprint.

  2. Per aggiungere porte denominate, invia una richiesta POST utilizzando il metodo instanceGroups.setNamedPorts . Se vuoi rimuovere tutte le porte con nome, imposta namedPorts su un elenco vuoto.

    POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/setNamedPorts
    
    {
        "fingerprint": "fingerprint",
        "namedPorts": [
            {
            "name": "port-name",
            "port": port-number
            },
            {
            "name": "port-name",
            "port": port-number
            },
            ....
        ]
    }
    

    Sostituisci quanto segue:

    • instance-group-name: il nome del gruppo di istanze.
    • zone: la zona del gruppo.
    • project-id: l'ID del progetto contenente il gruppo.
    • port-name e port-number: il nome e il numero della porta rappresentano una mappatura da un nome scelto da te a un numero di porta.
    • fingerprint: questa è l'impronta del passaggio precedente.

Passaggi successivi