I gruppi di nodi single-tenant condivisi sono simili ai gruppi di nodi single-tenant locali. Ad esempio, i gruppi di nodi condivisi hanno lo stesso costo, consumano la stessa quota e risiedono in un progetto padre nella gerarchia delle risorse.
La differenza tra i gruppi di nodi condivisi e i gruppi di nodi locali è che altri progetti della tua organizzazione possono eseguire il provisioning delle istanze di macchine virtuali (VM) nei gruppi di nodi condivisi.
La condivisione di un gruppo di nodi tra più progetti o un'organizzazione può aiutarti a:
Raggruppa i gruppi di nodi che gestisci in un unico progetto e poi li condividi con altri progetti o con l'intera organizzazione
Riduci i costi eliminando i nodi dopo aver consolidato le VM di vari progetti in gruppi di nodi sottoutilizzati
Gestisci i nodi single-tenant con un unico team
Condividi i nodi single-tenant con progetti più piccoli e mantieni i limiti di sicurezza e controllo degli accessi tra i progetti
Esegui una migrazione live tra gruppi di nodi all'interno dello stesso progetto
Migliora l'utilizzo dei gruppi di nodi e riduci il numero di nodi di manutenzione riservati quando utilizzi il criterio di manutenzione Esegui la migrazione all'interno del gruppo di nodi
Il seguente diagramma mostra un gruppo di nodi condiviso con altri progetti in modo che gli altri reparti che gestiscono le VM in quei progetti possano eseguire il provisioning delle VM in un gruppo di nodi condiviso.
Vantaggi di utilizzo dei gruppi di nodi condivisi
La seguente tabella mette a confronto i progetti che utilizzano gruppi di nodi locali con i progetti che utilizzano gruppi di nodi condivisi. Tieni presente che il sottoutilizzo delle vCPU diminuisce nei progetti che usano gruppi di nodi condivisi.
Configurazione progetto | Gruppi di nodi locali | Gruppi di nodi condivisi |
---|---|---|
Progetti | 10 | 10 |
vCPU / progetto | 24 | 24 |
Gruppi di nodi | 10 | 1 |
Nodi / gruppo di nodi | 1 | 3 |
vCPU / nodo | 80 | 80 |
Utilizzo / gruppo di nodi | 24 | 80 |
Sottoutilizzo / gruppo di nodi | 56 | 0 |
Sottoutilizzo totale | 10 x 56 = 560 vCPU | 1 x 0 = 0 vCPU |
Impostazioni per la condivisione dei gruppi di nodi
Compute Engine utilizza le seguenti impostazioni per la condivisione dei gruppi di nodi e del provisioning delle VM nei gruppi di nodi condivisi:
Un'impostazione di condivisione che configuri quando crei o aggiorni il gruppo di nodi single-tenant. Per specificare se condividere il gruppo di nodi con altri progetti o con l'intera organizzazione, utilizza le impostazioni dell'interfaccia alla gcloud CLI (
--share-setting
,--share-with
) o le impostazioni REST (shareSetting
,shareWith
).Un'etichetta di affinità nodo
compute.googleapis.com/project
predefinita che utilizzi quando esegui il provisioning di una VM in un gruppo di nodi condiviso mediante le etichette di affinità dei nodi. Per informazioni sulle altre etichette di affinità nodo predefinite, consulta Etichette di affinità predefinite.
Considerazioni sui criteri di manutenzione
Quando un gruppo di nodi utilizza il criterio di manutenzione Esegui la migrazione all'interno del gruppo di nodi, Compute Engine prenota almeno un nodo per gli eventi di migrazione live, quindi il gruppo di nodi deve avere almeno 2 nodi. Non puoi pianificare le VM sul nodo prenotato, di conseguenza i gruppi di nodi con questo criterio di manutenzione spesso hanno un utilizzo complessivo inferiore. Ciò rende i carichi di lavoro che richiedono il criterio di manutenzione Esegui la migrazione all'interno del gruppo di nodi ottimi candidati per la condivisione con i gruppi di nodi, poiché spesso registrano il maggiore vantaggio da un migliore utilizzo.
Ruoli e autorizzazioni IAM
Quando condividi un gruppo di nodi, tieni presente le seguenti informazioni su ruoli e autorizzazioni IAM:
Se un gruppo di nodi è condiviso con un progetto, qualsiasi utente in grado di creare VM nei progetti elencati o nell'organizzazione può eseguire il provisioning delle VM da quei progetti nel gruppo di nodi condivisi senza alcuna modifica ai ruoli o alle autorizzazioni IAM.
Il ruolo IAM
compute.soleTenantViewer
consente di elencare e visualizzare i gruppi di nodi (gcloud CLI/REST). Non puoi modificare i gruppi di nodi con questo ruolo. Qualsiasi utente con questo ruolo o con le autorizzazioni necessarie per elencare i gruppi di nodi, indipendentemente dalle autorizzazioni IAM sulla VM, può visualizzare l'ID progetto, il nome, il tipo di macchina e informazioni su SSD locali e GPU per tutte le VM nel gruppo di nodi.
Limitazioni
Limitazioni del regime di conformità:
- Indipendentemente dalle autorizzazioni IAM sulla VM, qualsiasi utente con le autorizzazioni per elencare i gruppi di nodi può visualizzare l'ID progetto, il nome e il tipo di macchina per tutte le VM nel gruppo di nodi. Di conseguenza, a causa del rischio di divulgazione delle informazioni tra progetti, i progetti con VM di cui è stato eseguito il provisioning in gruppi di nodi condivisi devono rientrare nello stesso regime di conformità.
Limitazioni della console Google Cloud:
- Se non disponi dell'autorizzazione per visualizzare le VM nel gruppo di nodi condivisi, queste VM non verranno visualizzate nell'elenco delle VM nella pagina Nodi single-tenant della console Google Cloud.
- Dopo aver modificato le impostazioni di condivisione nella pagina Gruppi di nodi single-tenant, l'impostazione Condiviso con non viene aggiornata nella UI. Per visualizzare l'impostazione aggiornata Condiviso con, vai alla pagina Nodi single-tenant.
- Dopo aver condiviso un gruppo di nodi con tutti i progetti all'interno di un'organizzazione o con progetti selezionati all'interno di un'organizzazione, puoi visualizzare solo il gruppo di nodi condiviso del relativo progetto proprietario e non puoi visualizzare il gruppo di nodi condiviso dei progetti con cui è stato condiviso. Per eseguire il provisioning di una VM nel gruppo di nodi condivisi, vai alla pagina Istanze VM dal progetto con cui è condiviso il gruppo di nodi, quindi modifica le etichette di affinità del nodo single-tenant.
Limitazioni della condivisione:
- Devi aggiornare le impostazioni di condivisione del progetto proprietario del gruppo di nodi.
- Puoi specificare un massimo di 100 progetti quando utilizzi l'impostazione di condivisione
projects
. - Non puoi condividere gruppi di nodi tra organizzazioni. Ad esempio, se esegui la migrazione di un progetto contenente un gruppo di nodi condiviso da un'organizzazione a un'altra, devi anche eseguire la migrazione di tutti i progetti con VM in esecuzione in quel gruppo di nodi condivisi.
- Non puoi eseguire la migrazione live tra progetti quando utilizzi gruppi di nodi single-tenant condivisi. Per ulteriori informazioni, consulta Eseguire manualmente la migrazione delle VM con migrazione live.
Prezzi
Le VM nei gruppi di nodi condivisi non hanno costi aggiuntivi e non sono previsti costi aggiuntivi per la condivisione dei gruppi di nodi. Per ulteriori informazioni sui prezzi dei nodi single-tenant, consulta Prezzi dei nodi single-tenant.
Prima di iniziare
- Prima di creare un gruppo di nodi single-tenant, crea un modello di nodo single-tenant.
- Prima di eseguire il provisioning delle VM in un nodo single-tenant, controlla la quota. A seconda del numero e della dimensione di nodi che prenoti, potrebbe essere necessario richiedere una quota aggiuntiva.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.
Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
-
Crea un nuovo gruppo di nodi e condividilo
Per creare un nuovo gruppo di nodi e condividerlo con altri progetti o con l'intera organizzazione, utilizza la console Google Cloud, gcloud CLI o REST.
Console
Creare un gruppo di nodi single-tenant. Per ulteriori informazioni, consulta Creare un gruppo di nodi single-tenant.
Configura le impostazioni di condivisione specificando una delle seguenti opzioni in Configurare le impostazioni di condivisione:
- Per condividere il gruppo di nodi con tutti i progetti nell'organizzazione, scegli Condividi questo gruppo di nodi con tutti i progetti all'interno dell'organizzazione.
- Per condividere il gruppo di nodi con progetti specifici all'interno dell'organizzazione, scegli Condividi questo gruppo di nodi con i progetti selezionati all'interno dell'organizzazione.
Se non vuoi condividere il gruppo di nodi, scegli Non condividere questo gruppo di nodi con altri progetti.
gcloud
Per creare un gruppo di nodi condiviso, utilizza il seguente comando gcloud compute
sole-tenancy node-groups create
.
gcloud compute sole-tenancy node-groups create NODE_GROUP \ --zone=ZONE \ --node-template=NODE_TEMPLATE \ --target-size=SIZE \ --share-setting=SHARE_SETTING \ --share-with=PROJECTS
Sostituisci quanto segue:
NODE_GROUP
: il nome del gruppo di nodi.ZONE
: la zona in cui creare il gruppo di nodi.NODE_TEMPLATE
: il nome del modello di nodo creato in precedenza.SIZE
: il numero di nodi nel gruppo di nodi.SHARE_SETTING
: l'impostazione di condivisione per il gruppo di nodi. Imposta suprojects
per condividere con progetti specifici oppure imposta suorganization
per condividere con l'intera organizzazione.PROJECTS
: un elenco di ID o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se impostiSHARE_SETTING
suprojects
.
REST
Per creare un gruppo di nodi condiviso, utilizza il seguente metodo nodeGroups.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups { ... "name": NODE_GROUP, "nodeTemplate": NODE_TEMPLATE, "size": SIZE, "shareSettings": { "shareType": SHARE_TYPE, "projectMap": { string: { "projectId": PROJECTS }, } } ... }
Sostituisci quanto segue:
PROJECT
: il nome del progetto in cui creare il gruppo di nodi.ZONE
: la zona in cui creare il gruppo di nodi.NODE_GROUP
: il nome del gruppo di nodi.NODE_TEMPLATE
: il nome del modello di nodo creato in precedenza.SIZE
: il numero di nodi nel gruppo di nodi.SHARE_TYPE
: l'impostazione di condivisione per il gruppo di nodi. Imposta suSPECIFIC_PROJECTS
per la condivisione con progetti specifici oppure imposta suORGANIZATION
per la condivisione con l'intera organizzazione.PROJECTS
: un elenco di ID o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se impostiSHARE_TYPE
suSPECIFIC_PROJECTS
.
Esegui il provisioning di una VM single-tenant in un gruppo di nodi condiviso
Per eseguire il provisioning di una VM single-tenant in un gruppo di nodi condiviso, utilizza la console Google Cloud, gcloud CLI o REST.
Console
Nella console Google Cloud, passa a un progetto con cui hai condiviso un gruppo di nodi.
Vai alla pagina Istanze VM.
Fai clic su Crea istanza.
In Zona, scegli la zona del gruppo di nodi condivisi.
In Configurazione macchina > Serie, scegli lo stesso tipo di macchina specificato dal modello di gruppo di nodi single-tenant condiviso.
Apri Opzioni avanzate > Sole-tenancy > Sfoglia.
Scegli Seleziona progetto e specifica il progetto che contiene il gruppo di nodi condivisi.
Scegli il gruppo di nodi single-tenant o un nodo single-tenant specifico in quel gruppo su cui eseguire il provisioning della VM.
gcloud
Esegui il provisioning di una VM in un gruppo di nodi condiviso utilizzando il nome del gruppo di nodi
Per eseguire il provisioning di una VM single-tenant in un gruppo di nodi condiviso utilizzando il nome del gruppo di nodi, utilizza il seguente comando gcloud compute instances create
.
gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --node-group=NODE_GROUP \ --node-project=NODE_PROJECT
Sostituisci quanto segue:
VM_NAME
: il nome della nuova VM single-tenant da creare in un gruppo di nodi condivisiMACHINE_TYPE
: il tipo di macchina per la nuova VM single-tenantNODE_GROUP
: nome del gruppo di nodi condivisi in cui creare la VM single-tenantNODE_PROJECT
: il progetto contenente il gruppo di nodi in cui eseguire il provisioning della VM
Esegui il provisioning di una VM in un gruppo di nodi condiviso utilizzando un file di affinità dei nodi
Per eseguire il provisioning di una VM single-tenant in un gruppo di nodi condiviso utilizzando un file di affinità dei nodi, utilizza il seguente comando gcloud compute instances create
.
gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --node-affinity-file=NODE_AFFINITY_FILE
Sostituisci quanto segue:
VM_NAME
: il nome della VM single-tenant da creare in un gruppo di nodi condivisi utilizzando un'etichetta di affinità.MACHINE_TYPE
: il tipo di macchina della VM single-tenant da creare in un gruppo di nodi condivisi.NODE_AFFINITY_FILE
: il nome del file.json
contenente le informazioni sull'affinità dei nodi. Nel file di affinità del nodo, imposta la chiave di etichetta di affinità su"compute.googleapis.com/project"
, l'operatore uguale a"IN"
e il valore uguale al progetto contenente il gruppo di nodi. Per ulteriori informazioni su come configurare l'affinità nodo, consulta Configurare le etichette di affinità nodo.
REST
Per eseguire il provisioning di una VM single-tenant in un gruppo di nodi condiviso utilizzando un file di affinità dei nodi, utilizza il seguente metodo nodeGroups.insert
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances { ... "name": VM_NAME, "machineType": MACHINE_TYPE, "scheduling": { ... "nodeAffinities": [ { "key": KEY, "operator": OPERATOR, "values": [ VALUE ] } ], ... }, ... }
Sostituisci quanto segue:
PROJECT
: il nome del progetto proprietario del gruppo di nodi.ZONE
: la zona del gruppo di nodi.VM_NAME
: il nome della VM single-tenant da creare in un gruppo di nodi condivisi utilizzando un'etichetta di affinità.MACHINE_TYPE
: il tipo di macchina della VM single-tenant da creare in un gruppo di nodi condivisi.KEY
: l'etichetta di affinità. Imposta su"compute.googleapis.com/project"
.OPERATOR
: l'operatore dell'etichetta di affinità. Imposta su"IN"
.VALUE
: il progetto contenente il gruppo di nodi in cui eseguire il provisioning della VM. Specifica un progetto utilizzando il nome o l'ID del progetto.
Per ulteriori informazioni su come configurare l'affinità nodo, consulta Configurare le etichette di affinità nodo.
Visualizza le impostazioni di condivisione di un gruppo di nodi
Per visualizzare le impostazioni di condivisione di un gruppo di nodi, utilizza la console Google Cloud, gcloud CLI o REST.
Console
Nella console Google Cloud, vai alla pagina Nodi single-tenant.
Per visualizzare le proprietà del gruppo di nodi, nella colonna Nome, fai clic sul nome del gruppo di nodi.
gcloud
Per visualizzare le impostazioni di condivisione di un gruppo di nodi, utilizza il seguente comando gcloud
compute sole-tenancy node-groups describe
.
gcloud compute sole-tenancy node-groups describe NODE_GROUP
Sostituisci NODE_GROUP
con il nome del gruppo di nodi di cui visualizzare le impostazioni di condivisione.
REST
Per visualizzare le impostazioni di condivisione di un gruppo di nodi, utilizza il seguente metodo nodeGroups.get
.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups
Sostituisci quanto segue:
PROJECT
: il nome del progetto con il gruppo di nodi per visualizzare le impostazioni di condivisioneZONE
: la zona contenente il gruppo di nodi per visualizzare le impostazioni di condivisione
Condividi un gruppo di nodi esistente
Per condividere un gruppo di nodi esistente con altri progetti o con l'intera organizzazione, utilizza la console Google Cloud, gcloud CLI o REST.
Console
Nella console Google Cloud, vai alla pagina Nodi single-tenant.
Nella colonna Nome, fai clic sul nome del gruppo di nodi.
Per condividere il gruppo di nodi con tutti i progetti all'interno dell'organizzazione o con i progetti selezionati all'interno dell'organizzazione, in Panoramica > Condiviso con, fai clic su Modifica .
gcloud
Per aggiornare le impostazioni di condivisione di un gruppo di nodi, utilizza il seguente comando gcloud
compute sole-tenancy node-groups update
.
gcloud compute sole-tenancy node-groups update NODE_GROUP \ --zone=ZONE \ --share-setting=SHARE_SETTING \ --share-with=PROJECTS
Sostituisci quanto segue:
NODE_GROUP
: il nome del gruppo di nodi di cui aggiornare le impostazioni di condivisione.SHARE_SETTING
: l'impostazione di condivisione per il gruppo di nodi. Imposta suprojects
per condividere con progetti specifici oppure imposta suorganization
per condividere con l'intera organizzazione.PROJECTS
: un elenco di ID o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se impostiSHARE_SETTING
suprojects
.
REST
Per aggiornare le impostazioni di condivisione di un gruppo di nodi, utilizza il seguente metodo nodeGroups.patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP { "shareSettings": { "shareType": SHARE_TYPE, "projectMap": { string: { "projectId": PROJECTS }, } } }
Sostituisci quanto segue:
PROJECT
: nome del progetto con i gruppi di nodi di cui aggiornare le impostazioni di condivisione.ZONE
: la zona contenente i gruppi di nodi di cui aggiornare le impostazioni di condivisione.NODE_GROUP
: il nome del gruppo di nodi di cui aggiornare le impostazioni di condivisione.SHARE_TYPE
: l'impostazione di condivisione per il gruppo di nodi. Imposta suprojects
per condividere con progetti specifici oppure imposta suorganization
per condividere con l'intera organizzazione.PROJECTS
: un elenco di ID o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se impostiSHARE_SETTING
suSPECIFIC_PROJECTS
.
Interrompi la condivisione di un gruppo di nodi
Per interrompere la condivisione di un gruppo di nodi con altri progetti o con l'intera organizzazione, utilizza gcloud CLI o REST.
Console
Nella console Google Cloud, vai alla pagina Nodi single-tenant.
Fai clic sul nome del gruppo di nodi.
In Panoramica > Condiviso con, fai clic su Modifica .
Per interrompere la condivisione, scegli Non condividere questo gruppo di nodi con altri progetti.
gcloud
Per interrompere la condivisione di un gruppo di nodi con altri progetti o con l'intera organizzazione, utilizza il seguente comando gcloud compute sole-tenancy node-groups update
.
gcloud compute sole-tenancy node-groups update NODE_GROUP \ --zone=ZONE \ --share-setting=local
Sostituisci NODE_GROUP
con il nome del gruppo di nodi per interrompere la condivisione.
REST
Per interrompere la condivisione di un gruppo di nodi con altri progetti o con l'intera organizzazione, utilizza il seguente metodo nodeGroups.patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP { "shareSettings": { "shareType": LOCAL } }
Sostituisci quanto segue:
PROJECT
: nome del progetto con il gruppo di nodi di cui interrompere la condivisioneZONE
: la zona contenente il gruppo di nodi di cui interrompere la condivisioneNODE_GROUP
: il nome del gruppo di nodi di cui interrompere la condivisione
Elimina un gruppo di nodi condiviso dal progetto proprietario
Per eliminare un gruppo di nodi condiviso dal progetto proprietario, utilizza la console Google Cloud, gcloud CLI o REST. Prima di eliminare un gruppo di nodi, arresta tutte le VM in esecuzione nel gruppo di nodi.
Console
Nella console Google Cloud, vai alla pagina Nodi single-tenant.
Nella colonna Nome, fai clic sul nome del gruppo di nodi.
Fai clic su Elimina.
gcloud
Per eliminare un gruppo di nodi condiviso dal progetto proprietario, utilizza il seguente comando gcloud compute sole-tenancy node-groups delete
.
gcloud compute sole-tenancy node-groups delete NODE_GROUP
Sostituisci NODE_GROUP
con il nome del gruppo di nodi da eliminare.
REST
Per eliminare un gruppo di nodi condiviso dal progetto proprietario, utilizza il seguente metodo nodeGroups.delete
.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP
Sostituisci quanto segue:
PROJECT
: il nome del progetto con il gruppo di nodi da eliminareZONE
: la zona contenente il gruppo di nodi da eliminareNODE_GROUP
: il nome del gruppo di nodi da eliminare