Condividi gruppi di nodi single-tenant


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 si trovano 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 di istanze di macchine virtuali (VM) nei gruppi di nodi condivisi.

La condivisione di un gruppo di nodi in più progetti o in un'organizzazione può aiutarti a:

  • Consolida i gruppi di nodi che gestisci in un unico progetto e poi condividi questi nodi con altri progetti o con l'intera organizzazione.

  • Ridurre i costi eliminando i nodi dopo aver consolidato le VM di vari progetti in gruppi di nodi sottoutilizzati

  • Gestire nodi single-tenant con un singolo team

  • Condividere nodi single-tenant con progetti più piccoli e mantenere i limiti di sicurezza e controllo dell'accesso tra questi 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 la policy 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 altri reparti che gestiscono le VM in questi progetti possano eseguire il provisioning delle VM in un gruppo di nodi condiviso.

Diagramma di un gruppo di nodi condiviso tra progetti. I reparti
            che gestiscono le VM in progetti diversi possono eseguire il provisioning delle VM in un gruppo di nodi condiviso.

Vantaggi di utilizzo dei gruppi di nodi condivisi

La seguente tabella confronta 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 utilizzano 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
Utilizzo insufficiente / gruppo di nodi 56 0
Utilizzo insufficiente 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 il provisioning delle VM nei gruppi di nodi condivisi:

  • Un'impostazione di condivisione che configuri quando crei o aggiorni il gruppo di nodi con un solo tenant. Per specificare se condividere il gruppo di nodi con altri progetti o con l'intera organizzazione, utilizza le impostazioni di 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 utilizzando le etichette di affinità nodo. Per informazioni sulle altre etichette di affinità dei nodi predefinite, vedi Etichette di affinità predefinite.

Considerazioni sui criteri di manutenzione

Quando un gruppo di nodi utilizza la policy di manutenzione Esegui la migrazione all'interno del gruppo di nodi, Compute Engine riserva almeno un nodo per gli eventi di migrazione live, quindi il gruppo di nodi deve avere almeno due nodi. Non puoi pianificare VM sul nodo riservato, quindi i gruppi di nodi con questa policy di manutenzione spesso hanno un utilizzo complessivo inferiore. Ciò rende i carichi di lavoro che richiedono la policy di manutenzione Esegui la migrazione all'interno del gruppo di nodi ottimi candidati per la condivisione del gruppo di nodi, in quanto spesso traggono il massimo vantaggio da un utilizzo migliorato.

Ruoli e autorizzazioni IAM

Tieni presente le seguenti informazioni su ruoli e autorizzazioni IAM quando condividi un gruppo di nodi:

  • Se un gruppo di nodi viene condiviso con un progetto, qualsiasi utente che può creare VM nei progetti elencati o nell'organizzazione può eseguire il provisioning delle VM da questi progetti nel gruppo di nodi condiviso 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 per elencare i gruppi di nodi, indipendentemente dalle autorizzazioni IAM sulla VM, può visualizzare l'ID progetto, il nome, il tipo di macchina e le 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. Pertanto, a causa del rischio di divulgazione di informazioni tra progetti, i progetti in cui è stato eseguito il provisioning delle VM in gruppi di nodi condivisi devono essere soggetti allo stesso regime di conformità.
  • Limitazioni della consoleGoogle Cloud :

    • Se non hai l'autorizzazione per visualizzare le VM nel gruppo di nodi condiviso, queste VM non verranno visualizzate nell'elenco delle VM nella pagina Nodi sole-tenant della consoleGoogle 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 Condiviso con aggiornata, 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 il gruppo di nodi condiviso solo dal progetto proprietario; non puoi visualizzarlo dai progetti con cui è stato condiviso. Per eseguire il provisioning di una VM nel gruppo di nodi condiviso, dal progetto con cui è condiviso il gruppo di nodi, vai alla pagina Istanze VM e poi modifica le etichette di affinità dei nodi single-tenant.
  • Limitazioni di condivisione:

    • Devi aggiornare le impostazioni di condivisione dal 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 che contiene un gruppo di nodi condiviso da un'organizzazione a un'altra, devi anche eseguire la migrazione di tutti i progetti che hanno VM in esecuzione in quel gruppo di nodi condiviso.
    • Non puoi eseguire la migrazione live tra progetti mentre utilizzi gruppi di nodi sole-tenant condivisi. Per ulteriori informazioni, vedi Esegui la migrazione live manuale delle VM.

Prezzi

Le VM nei gruppi di nodi condivisi non comportano costi aggiuntivi e non sono previsti costi aggiuntivi per la condivisione dei gruppi di nodi. Per maggiori 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 tua quota. A seconda del numero e delle dimensioni dei nodi prenotati, potresti dover richiedere una quota aggiuntiva.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API. 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. 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 .

Creare un nuovo gruppo di nodi e condividerlo

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

  1. Crea un gruppo di nodi single-tenant. Per saperne di più, consulta Creare un gruppo di nodi con singolo tenant.

  2. Configura le impostazioni di condivisione specificando una delle seguenti opzioni in Configura impostazioni di condivisione:

    • Per condividere il gruppo di nodi con tutti i progetti della tua 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 della tua organizzazione, scegli Condividi questo gruppo di nodi con 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 projects per la condivisione con progetti specifici o organization per la condivisione con l'intera organizzazione.

  • PROJECTS: un elenco di ID progetto o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se imposti SHARE_SETTING su projects.

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 SPECIFIC_PROJECTS per la condivisione con progetti specifici o ORGANIZATION per la condivisione con l'intera organizzazione.

  • PROJECTS: un elenco di ID progetto o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se imposti SHARE_TYPE su SPECIFIC_PROJECTS.

Esegui il provisioning di una VM single-tenant in un gruppo di nodi condiviso

Per eseguire il provisioning di una VM con tenancy esclusiva in un gruppo di nodi condiviso, utilizza la consoleGoogle Cloud , gcloud CLI o REST.

Console

  1. Nella Google Cloud console, passa a un progetto con cui hai condiviso un gruppo di nodi.

  2. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  3. Fai clic su Crea istanza.

  4. In Zona, scegli la zona del gruppo di nodi condiviso.

  5. In Configurazione macchina > Serie, scegli lo stesso tipo di macchina specificato dal modello di gruppo di nodi single-tenant condiviso.

  6. Espandi la sezione Opzioni avanzate.

  7. Espandi la sezione Single-tenancy.

  8. Fai clic su Sfoglia.

  9. Scegli Seleziona progetto e specifica il progetto che contiene il gruppo di nodi condiviso.

  10. 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 con tenancy esclusiva 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 condiviso

  • MACHINE_TYPE: il tipo di macchina per la nuova VM sole-tenant

  • NODE_GROUP: il nome del gruppo di nodi condiviso in cui creare la VM single-tenant

  • NODE_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 con tenancy esclusiva 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 condiviso utilizzando un'etichetta di affinità.

  • MACHINE_TYPE: il tipo di macchina della VM single-tenant da creare in un gruppo di nodi condiviso.

  • NODE_AFFINITY_FILE: il nome del file .json contenente le informazioni sull'affinità dei nodi. Nel file di affinità del nodo, imposta la chiave dell'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à dei nodi, consulta Configura le etichette di affinità dei nodi.

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 condiviso utilizzando un'etichetta di affinità.

  • MACHINE_TYPE: il tipo di macchina della VM single-tenant da creare in un gruppo di nodi condiviso.

  • 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 progetto.

Per ulteriori informazioni su come configurare l'affinità dei nodi, consulta Configurare le etichette di affinità dei nodi.

Visualizzare 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

  1. Nella console Google Cloud , vai alla pagina Nodi single-tenant.

    Vai a Nodi single-tenant

  2. 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 per visualizzare le impostazioni di condivisione.

REST

Per visualizzare le impostazioni di condivisione di un gruppo di nodi, utilizza il seguente nodeGroups.get metodo.

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 di cui visualizzare le impostazioni di condivisione

  • ZONE: la zona contenente il gruppo di nodi di cui visualizzare le impostazioni di condivisione

Condividere 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

  1. Nella console Google Cloud , vai alla pagina Nodi single-tenant.

    Vai a Nodi single-tenant

  2. Nella colonna Nome, fai clic sul nome del gruppo di nodi.

  3. 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 projects per la condivisione con progetti specifici o organization per la condivisione con l'intera organizzazione.

  • PROJECTS: un elenco di ID progetto o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se imposti SHARE_SETTING su projects.

REST

Per aggiornare le impostazioni di condivisione di un gruppo di nodi, utilizza il seguente nodeGroups.patch metodo.

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: il 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 projects per la condivisione con progetti specifici o organization per la condivisione con l'intera organizzazione.

  • PROJECTS: un elenco di ID progetto o numeri di progetto con cui condividere il gruppo di nodi. Obbligatorio solo se imposti SHARE_SETTING su SPECIFIC_PROJECTS.

Interrompere 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

  1. Nella console Google Cloud , vai alla pagina Nodi single-tenant.

    Vai a Nodi single-tenant

  2. Fai clic sul nome del gruppo di nodi.

  3. In Panoramica > Condivisi con, fai clic su Modifica .

  4. 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 da cui interrompere la condivisione.

REST

Per interrompere la condivisione di un gruppo di nodi con altri progetti o con l'intera organizzazione, utilizza il seguente nodeGroups.patch metodo.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/nodeGroups/NODE_GROUP

{
  "shareSettings": {
    "shareType": LOCAL
  }
}

Sostituisci quanto segue:

  • PROJECT: il nome del progetto con il gruppo di nodi di cui interrompere la condivisione

  • ZONE: la zona contenente il gruppo di nodi di cui interrompere la condivisione

  • NODE_GROUP: il nome del gruppo di nodi per interrompere la condivisione

Eliminare un gruppo di nodi condiviso dal progetto proprietario

Per eliminare un gruppo di nodi condiviso dal progetto proprietario, utilizza la consoleGoogle Cloud , gcloud CLI o REST. Prima di eliminare un gruppo di nodi, arresta tutte le VM in esecuzione nel gruppo di nodi.

Console

  1. Nella console Google Cloud , vai alla pagina Nodi single-tenant.

    Vai a Nodi single-tenant

  2. Nella colonna Nome, fai clic sul nome del gruppo di nodi.

  3. Fai clic su Elimina.

gcloud

Per eliminare un gruppo di nodi condiviso dal progetto proprietario, utilizza il seguente gcloud compute sole-tenancy node-groups delete comando.

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 eliminare

  • ZONE: la zona contenente il gruppo di nodi da eliminare

  • NODE_GROUP: il nome del gruppo di nodi da eliminare