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 od 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 gestite (MIG) basato su un template di istanza. Se possibile, valuta la possibilità di utilizzare gruppi di istanze gestite anziché non gestite. Per creare un gruppo di istanze gestite, consulta Crea un MIG.
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.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud initSe utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
- Imposta una regione e una zona predefinite.
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.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
Utilizzo di 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 template di istanza comune. Basta creare un gruppo e aggiungere le singole VM al gruppo.
Console
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Fai clic su Crea gruppo di istanze.
- Fai clic su Nuovo gruppo di istanze non gestite.
- Inserisci un nome per il gruppo di istanze non gestite.
- In Località, seleziona una regione e una zona.
- Seleziona una Rete e una Subnet.
- In Istanze VM, seleziona le VM da aggiungere a questo gruppo.
- Fai clic su Crea.
gcloud
Per creare un nuovo gruppo di istanze non gestite, utilizza il comando instance-groups unmanaged create:
gcloud compute instance-groups unmanaged create instance-group-name \
--zone=zone
Sostituisci quanto segue:
instance-group-name: il nome del gruppo da crearezone: la zona in cui vuoi creare il gruppo
REST
Per creare un gruppo di istanze non gestite 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 da crearezone: la zona in cui vuoi creare il gruppoproject-id: l'ID progetto contenente il gruppo
Quando crei un nuovo gruppo di istanze non gestite con Google Cloud CLI o REST, non vengono aggiunte VM in automatico. 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 riporta un elenco dei gruppi di istanze gestite e non gestite esistenti.
gcloud
Per visualizzare une lenco di tutti i gruppi di istanze non gestite nel tuo progetto con Google Cloud CLI, utilizza instance-groups unmanaged list:
gcloud compute instance-groups unmanaged list
Per visualizzare le informazioni su un gruppo di istanze non gestite specifico, utilizza il comando instance-groups unmanaged describe:
gcloud compute instance-groups unmanaged describe instance-group-name \ --zone=zone
Sostituisci quanto segue:
instance-group-name: il nome del gruppo da descriverezone: la zona del gruppo
REST
Per visualizzare un elenco dei 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 descriverezone: la zona del gruppoproject-id: l'ID progetto contenente il gruppo
Eliminazione di gruppi
A differenza di quanto accade in un gruppo di istanze gestite, l'eliminazione di un gruppo di istanze non gestite non comporta l'eliminazione delle VM al suo interno. L'eliminazione di un gruppo di istanze non gestite rimuove solo il raggruppamento logico delle VM.
Non puoi eliminare un gruppo di istanze se il gruppo è un backend di un bilanciatore del caricoGoogle Cloud . Devi prima rimuovere il backend dal servizio di backend.
Console
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Seleziona uno o più gruppi di istanze non gestite dall'elenco.
- Fai clic su Elimina per rimuovere i gruppi. I gruppi vengono rimossi, ma le VM al loro interno non vengono eliminate.
gcloud
Per eliminare un gruppo di istanze non gestite, utilizza il comando instance-groups unmanaged delete:
gcloud compute instance-groups unmanaged delete instance-group-name \
--zone=zone
Sostituisci quanto segue:
instance-group-name: il nome del gruppo che vuoi eliminarezone: la zona del gruppo
REST
Per eliminare un gruppo di istanze non gestite con REST, invia una richiesta
DELETE utilizzando il
metodo
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 eliminarezone: la zona del gruppoproject-id: l'ID progetto contenente il gruppo
Iscrizione 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
la prima o l'unica interfaccia di rete (nic0) di ogni VM è collegata alla
stessa rete VPC. Puoi aggiungere al massimo 2000 VM a
un gruppo di istanze non gestite. Se vuoi aggiungere più di 2000 VM al
gruppo, contatta l'assistenza.
Console
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze in cui vuoi aggiungere le VM. Viene visualizzata una pagina con le proprietà del gruppo di istanze e un elenco di VM che fanno già parte del gruppo.
- Fai clic su Modifica per modificare il gruppo di istanze non gestite.
- In Istanze VM, seleziona una o più VM esistenti da aggiungere al gruppo. Puoi selezionare solo le VM che si trovano nella stessa zona, nella stessa rete VPC e nella stessa subnet delle VM esistenti.
- Fai clic su Salva per aggiungere le nuove VM al gruppo.
gcloud
Per aggiungere istanze a un gruppo di istanze non gestite, utilizza il comando instance-groups unmanaged 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 VMzone: la zona del gruppolist-of-VM-names: un elenco delimitato da virgole di VM nella stessa zona, rete VPC e subnet
REST
Per aggiungere VM a un gruppo di istanze non gestite, 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 VMzone: la zona del gruppoproject-id: l'ID progetto contenente il gruppoinstance-1-nameeinstance-2-name: si tratta dei nomi delle VM, nella stessa zona, rete VPC e subnet, che desideri aggiungere al gruppo
Elenco di VM
Puoi recuperare un elenco di VM che fanno parte di un gruppo di istanze non gestite.
Console
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- 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 generare un elenco delle VM in un gruppo di istanze non gestite, utilizza il comando instance-groups unmanaged list-instances:
gcloud compute instance-groups unmanaged list-instances instance-group-name \ --zone=zone
Sostituisci quanto segue:
instance-group-name: il nome del gruppo di cui vuoi generare un elenco dei membrizone: la zona del gruppo
REST
Per generare un elenco delle VM in un gruppo di istanze non gestite, 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 di cui vuoi generare un elenco dei membrizone: la zona del gruppoproject-id: l'ID progetto contenente il gruppo
Rimozione di VM
Puoi rimuovere le VM da un gruppo di istanze non gestite. La rimozione di una VM dal gruppo di istanze non ne comporta l'eliminazione.
Console
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze da cui vuoi rimuovere le VM. Viene visualizzata una pagina con le proprietà del gruppo di istanze e l'elenco delle VM incluse nel gruppo.
- Nell'elenco, seleziona una o più VM da rimuovere dal gruppo.
- Fai clic su Rimuovi dal gruppo. Le VM rimosse da un gruppo di istanze non gestite esistono ancora e restano in esecuzione, a meno che non le arresti o le elimini.
gcloud
Per rimuovere le VM da un gruppo di istanze non gestite, utilizza il comando instance-groups unmanaged 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 le istanze da rimuoverezone: la zona del gruppolist-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 gestite, 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 le istanze da rimuoverezone: la zona del gruppoproject-id: l'ID progetto contenente il gruppoinstance-1-nameeinstance-2-name: sono i nomi delle VM che vuoi annullare l'associazione al gruppo
Utilizzo di porte denominate
Le porte denominate sono coppie chiave-valore che rappresentano il nome e il numero di una porta. 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 denominate vengono utilizzate da Cloud Load Balancing. I bilanciatori del carico che fungono da proxy si iscrivono 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ò iscriversi 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 servizio
di backend del bilanciatore del carico.
Le porte denominate sono semplici metadati utilizzati dai bilanciatori del carico proxy. Le porte denominate non controllano le risorse di rete o del firewall in Compute Engine.
Più numeri di porta per una porta denominata
Puoi assegnare più porte per ogni nome di servizio. Puoi anche assegnare più nomi di servizio 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 a una sola 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:8080funziona, mahttp:80,http:443non funziona perché in genere la porta 80 non supporta TLS.
Puoi assegnare più porte denominate in un gruppo di istanze. Per fare un esempio,
consideriamo un servizio di backend che si iscrive alla porta denominata
http-port e che ha due gruppi di istanze di backend:
instance-group-acon una porta denominata dihttp-port:80instance-group-bcon una porta denominata dihttp-port:79
Questo servizio di backend invia traffico alla porta 80 per le VM in instance-group-a e
alla 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 ogni bilanciatore del 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, ciascuna 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
utilizzino un gruppo di istanze comune, assegna le porte denominate per questo gruppo di istanze
come [app1:81, app2:82, app3:83].
Porte denominate e controlli di integrità
Per fare in modo che 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
Google Cloud CLI o l'API.
Ad esempio, supponiamo di avere un'applicazione che esegue il bilanciamento del carico del traffico su
tre porte diverse (81, 82, 83) sullo stesso servizio di backend con un singolo
gruppo di istanze. 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 denominate non creano o modificano le regole del firewall Google Cloud . Per consentire il traffico verso le VM di backend, devi comunque creare le regole firewall necessarie.
Porte denominate e servizi di backend
Oltre al gruppo di istanze, devi configurare anche
il servizio di backend. Ad esempio, supponiamo di impostare la porta denominata su un gruppo
di istanze 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
Poi devi fare riferimento alla porta denominata nella configurazione del servizio di backend con
--port-name impostato su my-service-name nel servizio di backend:
gcloud compute backend-services update my-backend-service \
--port-name=my-service-name
Creazione di porte denominate
Console
- Nella console Google Cloud , vai alla pagina Gruppi di istanze.
- Nella colonna Nome dell'elenco, fai clic sul nome del gruppo di istanze in cui vuoi specificare le porte denominate. Viene visualizzata una pagina con le proprietà del gruppo di istanze.
- Fai clic su Modifica per modificare il gruppo di istanze non gestite.
- Nella sezione Mappatura delle porte, fai clic su Aggiungi porta e inserisci il nome e il numero di una porta. Aggiungi o rimuovi altre porte denominate in base alle tue esigenze.
- Fai clic su Salva per aggiornare l'elenco delle porte denominate per il gruppo di istanze non gestite.
gcloud
Per aggiungere porte denominate a un gruppo di istanze non gestite, 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 generare un elenco delle porte denominate in un gruppo di istanze non gestite, 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:PORTAd esempio:
gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
--named-ports name1:80,name2:8080Per assegnare più porte a ogni nome di servizio o più nomi a ogni
servizio, crea più di una voce per ogni nome o porta. Ad esempio, se
le porte 10, 20 e 80 fanno riferimento alla 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 9000 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:9000Per rimuovere tutte le porte denominate da un gruppo di istanze non gestite 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-nameeport-number: il nome e il numero di porta rappresentano una mappatura da un nome scelto a un numero di porta. Puoi specificare più mappature separate da virgole. Ad esempio,port-one:80,port-two:8080è un elenco valido di porte denominate.
REST
Descrivi il gruppo di istanze e prendi nota della fingerprint (impronta).
Per aggiungere porte denominate, invia una richiesta
POSTutilizzando il metodo instanceGroups.setNamedPorts. Se vuoi rimuovere tutte le porte denominate, impostanamedPortssu 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 istanzezone: la zona del gruppoproject-id: l'ID progetto contenente il gruppoport-nameeport-number: il nome e il numero di porta rappresentano una mappatura da un nome scelto a un numero di portafingerprint: questa è l'impronta del passaggio precedente
Passaggi successivi
- Crea un gruppo di istanze gestite con VM in una singola zona.
- Crea un gruppo di istanze gestite con VM in più zone all'interno di una regione.
- Scopri di più su Cloud Load Balancing.