Creare un'istanza Confidential VM con GPU

Per utilizzare le GPU con le istanze Confidential VM, devi creare un'istanza VM utilizzando un tipo di macchina e un modello di provisioning dell'istanza supportati. Dopo aver creato l'istanza VM, devi attivare la modalità di calcolo confidenziale sulla GPU collegata.

Le istanze Confidential VM con GPU NVIDIA sono disponibili sui seguenti tipi di macchina:

  • Tipo di macchina A3 High: GPU NVIDIA H100 con Intel TDX. Supporta i modelli di provisioning spot e con avvio flessibile.

  • Tipo di macchina G4 (anteprima): NVIDIA RTX PRO 6000 con AMD SEV. Supporta i modelli di provisioning standard (on demand), spot e avvio flessibile e le prenotazioni.

Prima di creare un'istanza Confidential VM con GPU, assicurati di disporre di una quota GPU sufficiente. Per saperne di più, consulta Requisito di quota di GPU.

Crea un'istanza Confidential VM con GPU

Per creare un'istanza Confidential VM con una GPU collegata, utilizza uno dei seguenti modelli di provisioning:

Modello standard (on demand) o spot

gcloud

Per creare un'istanza VM standard (on demand) o VM spot ottimizzata per l'acceleratore con gcloud CLI, utilizza il sottocomando instances create con il flag --provisioning-model.

gcloud compute instances create INSTANCE_NAME \
    --provisioning-model=PROVISIONING_MODEL \
    --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
    --machine-type=MACHINE_TYPE_NAME \
    --maintenance-policy=TERMINATE \
    --zone=ZONE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY_NAME \
    --boot-disk-size=30G

Per abilitare l'avvio protetto, puoi utilizzare il flag --shielded-secure-boot per gli avvii delle istanze VM.

Fornisci i seguenti valori:

  • INSTANCE_NAME: il nome della nuova istanza VM.

  • PROVISIONING_MODEL: Il modello di provisioning supportato dal tipo di macchina. Scegli una delle opzioni seguenti:

    • Tipo di macchina A3 High: SPOT per le istanze VM spot.

    • Tipo di macchina G4 (anteprima): STANDARD per le istanze VM standard (on demand) o SPOT per le istanze VM spot. Se non specificato, il valore predefinito è STANDARD.

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:

    • Tipo di macchina A3 High (a3-highgpu-1g): TDX

    • Tipo di macchina G4 (g4-standard-48): SEV

  • MACHINE_TYPE_NAME: il tipo di macchina della VM. Scegli una delle seguenti opzioni:

  • ZONE_NAME: la zona supportata in cui creare la VM.

  • IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:

    • Tipo di macchina A3 High: ubuntu-os-cloud per le immagini Ubuntu o confidential-vm-images per le immagini Container-Optimized OS.

    • Tipo di macchina G4 (anteprima): ubuntu-os-cloud per le immagini Ubuntu o cos-cloud per le immagini Container-Optimized OS.

  • IMAGE_FAMILY_NAME: la famiglia dell'immagine del sistema operativo supportata da Confidential VM. Scegli la famiglia di immagini in base al tipo di macchina:

    • Tipo di macchina A3 High:

      • ubuntu-2204-lts per i progetti di immagini Ubuntu.

      • cos-tdx-113-lts per i progetti di immagini Container-Optimized OS.

    • Tipo di macchina G4 (anteprima):

      • ubuntu-2404-lts-amd64 per i progetti di immagini Ubuntu.

      • cos-125-lts per i progetti di immagini Container-Optimized OS.

REST

Per creare un'istanza VM standard (on demand) o spot, invia la seguente richiesta POST con il contenuto del corpo appropriato.

Utilizza il seguente metodo HTTP e URL:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

Utilizza il seguente corpo JSON della richiesta:

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE_NAME",
  "confidentialInstanceConfig": {
    "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
  },
  "scheduling": {
    "onHostMaintenance": "TERMINATE",
    "automaticRestart": true,
    "provisioningModel": "PROVISIONING_MODEL"
  },
  "disks": [
    {
      "boot": true,
      "autoDelete": true,
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY",
        "diskSizeGb": "30"
      }
    }
  ],
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

Fornisci i seguenti valori:

  • PROJECT_ID: (Facoltativo) L'ID del progetto in cui creare la VM.

  • ZONE: la zona supportata in cui creare la VM.

  • INSTANCE_NAME: il nome della nuova istanza VM.

  • MACHINE_TYPE_NAME: il tipo di macchina della VM. Scegli uno dei seguenti:

  • CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:

    • Tipo di macchina A3 High (a3-highgpu-1g): TDX

    • Tipo di macchina G4 (g4-standard-48): SEV

  • PROVISIONING_MODEL: il modello di provisioning supportato dalla serie di macchine. Scegli una delle opzioni seguenti:

    • Tipo di macchina A3 High: SPOT per le istanze VM spot.

    • Tipo di macchina G4 (anteprima): STANDARD per istanze VM standard (on demand) o SPOT per istanze VM spot. Se non specificato, questo valore è impostato su STANDARD per impostazione predefinita.

  • IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:

    • Tipo di macchina A3 High: ubuntu-os-cloud per le immagini Ubuntu o confidential-vm-images per le immagini Container-Optimized OS.

    • Tipo di macchina G4 (anteprima): ubuntu-os-cloud per le immagini Ubuntu o cos-cloud per le immagini Container-Optimized OS.

  • IMAGE_FAMILY: la famiglia dell'immagine del sistema operativo supportata da Confidential VM. Scegli la famiglia di immagini in base al tipo di macchina:

    • Tipo di macchina A3 High:

      • ubuntu-2204-lts per i progetti di immagini Ubuntu.

      • cos-tdx-113-lts per i progetti di immagini Container-Optimized OS.

    • Tipo di macchina G4 (anteprima):

      • ubuntu-2404-lts-amd64 per i progetti di immagini Ubuntu.

      • cos-125-lts per i progetti di immagini Container-Optimized OS.

Modello di avvio flessibile

Per utilizzare il modello di avvio flessibile, crea prima un template di istanza, quindi utilizzalo per creare un gruppo di istanze gestite (MIG). A questo punto, puoi aggiungere istanze di VM GPU al MIG utilizzando le richieste di ridimensionamento.

L'utilizzo di una richiesta di ridimensionamento del MIG con il modello di provisioning di avvio flessibile migliora l'ottenibilità delle istanze VM GPU. Per ulteriori informazioni, consulta la pagina Informazioni sulle richieste di ridimensionamento in un MIG.

Prima di iniziare

Crea un MIG con istanze VM GPU

Per creare un template di istanza e poi utilizzarlo per creare un gruppo di istanze gestite, completa i seguenti passaggi.

  1. Crea un template di istanza.

    gcloud

    gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --provisioning-model=FLEX_START \
        --confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
        --machine-type=MACHINE_TYPE_NAME \
        --maintenance-policy=TERMINATE \
        --image-project=IMAGE_PROJECT \
        --image-family=IMAGE_FAMILY_NAME \
        --reservation-affinity=none \
        --boot-disk-size=30G \
        --instance-termination-action=DELETE \
        --max-run-duration=RUN_DURATION \
        --project=PROJECT_ID
    

    Fornisci i seguenti valori:

    • INSTANCE_TEMPLATE_NAME: il nome del nuovo template di istanza VM.

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:

      • Tipo di macchina A3 High (a3-highgpu-1g): TDX

      • Tipo di macchina G4 (g4-standard-48): SEV

    • MACHINE_TYPE_NAME: Il tipo di macchina della VM. Scegli una delle seguenti opzioni:

    • IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:

      • Tipo di macchina A3 High: ubuntu-os-cloud per le immagini Ubuntu o confidential-vm-images per le immagini Container-Optimized OS.

      • Tipo di macchina G4 (anteprima): ubuntu-os-cloud per le immagini Ubuntu o cos-cloud per le immagini Container-Optimized OS.

    • IMAGE_FAMILY_NAME: la famiglia per l'immagine del sistema operativo supportato dalla Confidential VM da utilizzare. Scegli la famiglia di immagini in base al tipo di macchina:

      • Tipo di macchina A3 High:

        • ubuntu-2204-lts per i progetti di immagini Ubuntu.

        • cos-tdx-113-lts per i progetti di immagini Container-Optimized OS.

      • Tipo di macchina G4 (anteprima):

        • ubuntu-2404-lts-amd64 per i progetti di immagini Ubuntu.

        • cos-125-lts per i progetti di immagini Container-Optimized OS.

    • RUN_DURATION: la durata per cui vuoi eseguire le istanze VM richieste. Devi formattare il valore come numero di giorni, ore, minuti o secondi seguiti rispettivamente da d, h, m e s. Ad esempio: 6d8h44m.

    • PROJECT_ID: l'ID del progetto in cui creare la VM.

    REST

    Per creare un template di istanza Confidential VM, invia la seguente richiesta POST con il contenuto del corpo appropriato.

    Utilizza il seguente metodo HTTP e URL:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates
    

    Utilizza il seguente corpo JSON della richiesta:

    {
      "name": "INSTANCE_TEMPLATE_NAME",
      "properties": {
        "confidentialInstanceConfig": {
          "confidentialInstanceType": "CONFIDENTIAL_COMPUTING_TECHNOLOGY"
        },
        "machineType": "MACHINE_TYPE_NAME",
        "scheduling": {
          "instanceTerminationAction": "DELETE",
          "maxRunDuration": {
            "seconds": "RUN_DURATION_IN_SECONDS"
          },
          "automaticRestart": true,
          "onHostMaintenance": "TERMINATE",
          "provisioningModel": "FLEX_START",
          "preemptible": false
        },
        "disks": [
          {
            "autoDelete": true,
            "index": 0,
            "boot": true,
            "kind": "compute#attachedDisk",
            "mode": "READ_WRITE",
            "initializeParams": {
              "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME",
              "diskSizeGb": "30"
            },
            "type": "PERSISTENT"
          }
        ],
        "networkInterfaces": [
          {
            "accessConfigs": [
              {
                "kind": "compute#accessConfig",
                "name": "external-nat",
                "networkTier": "PREMIUM",
                "type": "ONE_TO_ONE_NAT"
              }
            ],
            "kind": "compute#networkInterface",
            "name": "nic0",
            "network": "projects/PROJECT_ID/global/networks/default"
          }
        ],
        "reservationAffinity": {
          "consumeReservationType": "NO_RESERVATION"
        },
        "canIpForward": false
      }
    }
    

    Per abilitare l'avvio protetto, puoi includere il seguente oggetto per gli avvii delle istanze VM.

    "shieldedInstanceConfig": {
      "enableIntegrityMonitoring": true,
      "enableSecureBoot": true,
      "enableVtpm": true
    }
    

    Fornisci i seguenti valori:

    • PROJECT_ID: l'ID del progetto in cui creare il modello.

    • REGION: la regione in cui creare il modello.

    • INSTANCE_TEMPLATE_NAME: il nome del nuovo template di istanza VM.

    • CONFIDENTIAL_COMPUTING_TECHNOLOGY: il tipo di tecnologia Confidential Computing da utilizzare. Scegli una delle opzioni seguenti:

      • Tipo di macchina A3 High (a3-highgpu-1g): TDX

      • Tipo di macchina G4 (g4-standard-48): SEV

    • MACHINE_TYPE_NAME: Il tipo di macchina della VM. Scegli una delle seguenti opzioni:

    • RUN_DURATION_IN_SECONDS: la durata, in secondi, per cui vuoi eseguire le istanze VM richieste. Il valore deve essere compreso tra 600 e 604800 secondi.

    • IMAGE_PROJECT: il progetto contenente l'immagine di sistema supportata. Scegli una delle opzioni seguenti:

      • Tipo di macchina A3 High: ubuntu-os-cloud per le immagini Ubuntu o confidential-vm-images per le immagini Container-Optimized OS.

      • Tipo di macchina G4 (anteprima): ubuntu-os-cloud per le immagini Ubuntu o cos-cloud per le immagini Container-Optimized OS.

    • IMAGE_FAMILY_NAME: la famiglia per l'immagine del sistema operativo supportato dalla Confidential VM da utilizzare. Scegli la famiglia di immagini in base al tipo di macchina:

      • Tipo di macchina A3 High:

        • ubuntu-2204-lts per i progetti di immagini Ubuntu.

        • cos-tdx-113-lts per i progetti di immagini Container-Optimized OS.

      • Tipo di macchina G4 (anteprima):

        • ubuntu-2404-lts-amd64 per i progetti di immagini Ubuntu.

        • cos-125-lts per i progetti di immagini Container-Optimized OS.

  2. Crea un MIG e una richiesta di ridimensionamento per aggiungere contemporaneamente istanze VM GPU.

  3. Elenca le istanze presenti nel MIG.

    gcloud

    gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \
        --zone=ZONE_NAME \
        --project=PROJECT_ID
    

    Fornisci i seguenti valori:

    • INSTANCE_GROUP_NAME: il nome del MIG.

    • ZONE_NAME: la zona supportata da cui recuperare un elenco di istanze VM.

    • PROJECT_ID: (Facoltativo) L'ID del progetto da cui ottenere un elenco di istanze VM.

    REST

    Per elencare tutti i modelli, invia la seguente richiesta GET.

    Utilizza il seguente metodo HTTP e URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
    

    Per restringere l'elenco delle istanze a una zona specifica, invia la seguente richiesta GET.

    Utilizza il seguente metodo HTTP e URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
    

    Fornisci i seguenti valori:

    • ZONE_NAME: la zona supportata da cui recuperare un elenco di istanze VM.

    • PROJECT_ID: l'ID del progetto da cui recuperare un elenco di istanze VM.

Utilizzare le prenotazioni con le istanze Confidential VM

Puoi utilizzare le prenotazioni per assicurarti di avere capacità per le tue istanze Confidential VM solo con il tipo di macchina G4 (anteprima).

Per utilizzare una prenotazione per l'istanza Confidential VM:

  1. Crea una prenotazione standard nella zona supportata. Puoi controllare il modo in cui le istanze utilizzano questa prenotazione utilizzando il flag --require-specific-reservation durante la creazione della prenotazione.

  2. Crea un'istanza Confidential VM per utilizzare la prenotazione. Quando crei l'istanza VM, includi il flag --confidential-compute-type=SEV per renderla un'istanza Confidential VM. La modalità di consumo della prenotazione da parte di questa istanza dipende dalle impostazioni di affinità della prenotazione.

Gli esempi seguenti mostrano come utilizzare le prenotazioni con le istanze Confidential VM. Il metodo per utilizzare la prenotazione dipende da come è stata creata:

  • Utilizzo automatico: se una prenotazione viene creata senza il flag --require-specific-reservation, puoi creare un'istanza VM confidenziale G4 con proprietà corrispondenti (come il tipo di macchina o la zona) per utilizzare automaticamente la prenotazione.

  • Utilizzo specifico: se una prenotazione viene creata con il flag --require-specific-reservation, devi impostarla come target utilizzando i flag --reservation-affinity=specific e --reservation=RESERVATION_NAME quando crei l'istanza:

    gcloud compute instances create INSTANCE_NAME \
        --project=PROJECT_ID \
        --zone=ZONE_NAME \
        --machine-type=g4-standard-48 \
        --confidential-compute-type=SEV \
        --image-project=ubuntu-os-cloud \
        --image-family=ubuntu-2404-lts-amd64 \
        --reservation-affinity=specific \
        --reservation=RESERVATION_NAME
    

    Fornisci i seguenti valori:

    • INSTANCE_NAME: il nome della nuova istanza VM.

    • PROJECT_ID: (Facoltativo) L'ID del progetto in cui creare la VM.

    • ZONE_NAME: la zona supportata in cui creare la VM.

    • RESERVATION_NAME: il nome della prenotazione.

Per scoprire come le istanze VM utilizzano le prenotazioni e come funziona l'affinità, consulta Utilizzare le prenotazioni.

Abilita la modalità Confidential Computing sulla GPU

  1. Connettiti a un'istanza VM nel MIG utilizzando il comando gcloud compute ssh.

    gcloud compute ssh
    
  2. Aggiorna l'elenco dei pacchetti e installa gli strumenti e le librerie necessari.

    sudo apt-get update --yes
    sudo apt-get install linux-headers-$(uname -r)
    sudo apt install -y build-essential libxml2 libncurses5-dev pkg-config libvulkan1 gcc-12
    
  3. Installa i driver GPU appropriati sull'istanza VM. Per le istanze VM in cui è abilitato Avvio protetto, consulta Installare i driver GPU (VM con Avvio protetto). Ti consigliamo di utilizzare la versione 580 o successive dei driver del modulo del kernel aperto NVIDIA.

  4. Per configurare la comunicazione sicura tra la GPU e il driver della GPU, abilita l'API Linux Kernel Crypto (LKCA).

    echo "install nvidia /sbin/modprobe ecdsa_generic; /sbin/modprobe ecdh; /sbin/modprobe --ignore-install nvidia" | sudo tee /etc/modprobe.d/nvidia-lkca.conf
    sudo update-initramfs -u
    
  5. Attiva la modalità di persistenza per stabilire una connessione sicura SPDM (Security Protocol and Data Model) tra la GPU e il driver della GPU.

    sudo test -f /usr/lib/systemd/system/nvidia-persistenced.service && sudo sed -i "s/no-persistence-mode/uvm-persistence-mode/g" /usr/lib/systemd/system/nvidia-persistenced.service
    sudo systemctl daemon-reload
    
  6. Riavvia l'istanza VM per applicare le configurazioni della modalità di persistenza e LKCA.

    sudo reboot
    
  7. Connettiti a un'istanza VM nel MIG utilizzando il comando gcloud compute ssh.

    gcloud compute ssh
    
  8. (Facoltativo) Installa gli esempi CUDA che supportano la versione del driver di cui hai bisogno.

    wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz
    tar xzvf cuda-samples.tar.gz
    

Prezzi

Durante l'anteprima, le tariffe aggiuntive per le istanze Confidential VM sul tipo di macchina G4 sono offerte senza costi. Queste tariffe includono il supplemento per Confidential Computing e la tariffa di licenza NVIDIA. Vengono comunque applicati gli addebiti standard per le risorse Compute Engine sottostanti, come il tipo di macchina G4, la GPU e lo spazio di archiviazione. Queste tariffe aggiuntive per Confidential Computing vengono applicate al termine del periodo di anteprima in disponibilità generale. Per informazioni dettagliate sui prezzi, consulta Prezzi di Confidential VM.

Passaggi successivi