Wenn Sie GPUs mit Confidential VMs verwenden möchten, müssen Sie eine Confidential VM-Instanz mit dem Bereitstellungsmodell für Spot- oder Flex-Start basierend auf dem Maschinentyp a3-highgpu-1g erstellen und Intel TDX verwenden. Nachdem Sie die VM-Instanz erstellt haben, aktivieren Sie den Confidential Computing-Modus auf der angeschlossenen GPU.
So erstellen Sie eine VM-Instanz mit dem Spot- oder Flex-Start-Modell:
Wenn Sie das Flex-Start-Modell verwenden möchten, erstellen Sie eine verwaltete Instanzgruppe (MIG). Weitere Informationen finden Sie unter MIG erstellen.
Wenn Sie das Spot-Modell verwenden möchten, erstellen Sie eine beschleunigungsoptimierte Spot-VM-Instanz. Weitere Informationen finden Sie unter Spot-VM-Instanz erstellen.
Eine MIG erstellen.
Hinweise
- Prüfen Sie Ihr GPU-Kontingent, damit Ihr Kontingent für die angeforderten Ressourcen ausreicht.
Fordern Sie für eine vertrauliche VM-Instanz mit einer GPU ein GPU-Kontingent auf Abruf an, um die Ressourcen zu verwenden. Wenn Sie ein GPU-Kontingent anfordern, müssen Sie ein Kontingent für die GPU-Modelle, die Sie in den einzelnen Regionen erstellen möchten, sowie ein zusätzliches globales Kontingent (
GPUs (all regions)
) für die Gesamtzahl der GPUs aller Typen in allen Regionen anfordern. - Weitere Informationen zum Kontingentverbrauch finden Sie unter GPU-VMs und Zuteilungskontingente auf Abruf.
- Weitere Informationen zu den Voraussetzungen für das Erstellen einer MIG und zu den Einschränkungen beim Erstellen einer Anfrage zur Größenänderung in einer MIG
So erstellen Sie eine MIG mit GPU-VM-Instanzen:
Erstellen Sie eine Instanzvorlage, die zum Erstellen einer MIG erforderlich ist.
gcloud
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --machine-type=a3-highgpu-1g \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY_NAME \ --maintenance-policy=TERMINATE \ --reservation-affinity=none \ --boot-disk-size=30G \ --confidential-compute-type=TDX \ --project=PROJECT_ID
Sie können das Flag
--shielded-secure-boot
für das Booten von VM-Instanzen verwenden, um Secure Boot zu aktivieren.Geben Sie folgende Werte an:
INSTANCE_TEMPLATE_NAME
: Der Name der neuen VM-Instanzvorlage.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Imageprojekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie das Image-Projektubuntu-os-cloud
verwenden, empfehlen wir die Image-Familieubuntu-2204-lts
. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.
REST
Wenn Sie eine Vorlage für eine Confidential VM-Instanz erstellen möchten, senden Sie die folgende POST-Anfrage mit dem entsprechenden Textkörper.
HTTP-Methode und URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
JSON-Text anfordern:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "TDX" }, "scheduling": { "onHostMaintenance": "TERMINATE", "provisioningModel": "STANDARD", "automaticRestart": true, "preemptible": false }, "disks": [ { "type": "PERSISTENT", "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" } } ], "networkInterfaces": [ { "name": "nic0", "network": "projects/PROJECT_ID/global/networks/default", "accessConfigs": [ { "name": "external-nat", "type": "ONE_TO_ONE_NAT", "kind": "compute#accessConfig", "networkTier": "PREMIUM" } ], "kind": "compute#networkInterface" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "canIpForward": false, "machineType": "a3-highgpu-1g", "metadata": { "fingerprint": "3y_uc6s9Qvs=", "kind": "compute#metadata" } } }
Wenn Sie Secure Boot aktivieren möchten, können Sie optional das folgende Objekt für das Starten von VM-Instanzen angeben.
"shieldedInstanceConfig": { "enableIntegrityMonitoring": true, "enableSecureBoot": true, "enableVtpm": true }
Geben Sie folgende Werte an:
INSTANCE_TEMPLATE_NAME
: Der Name der neuen VM-Instanzvorlage.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Imageprojekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie das Image-Projektubuntu-os-cloud
verwenden, empfehlen wir die Image-Familieubuntu-2204-lts
. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.ZONE
: Unterstützte Zone, in der die verwaltete Instanzgruppe erstellt werden soll.
Erstellen Sie eine MIG und eine Anfrage zur Größenänderung, um GPU-VM-Instanzen gleichzeitig hinzuzufügen.
Listen Sie die Instanzen in der MIG auf.
gcloud
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ --zone=ZONE \ --project=PROJECT_ID
Geben Sie folgende Werte an:
INSTANCE_GROUP_NAME
: Name der MIG.ZONE
: Die unterstützte Zone, aus der eine Liste der VM-Instanzen abgerufen werden soll.PROJECT_ID
: Optional. Die ID des Projekts, aus dem eine Liste der VM-Instanzen abgerufen werden soll.
REST
Senden Sie die folgende GET-Anfrage, um alle Instanzen aufzulisten.
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
Wenn Sie die Liste der Instanzen auf eine bestimmte Zone beschränken möchten, senden Sie die folgende GET-Anfrage.
HTTP-Methode und URL:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/ZONE/instanceTemplates
Geben Sie folgende Werte an:
ZONE
: Die unterstützte Zone, aus der eine Liste der VM-Instanzen abgerufen werden soll.PROJECT_ID
: Die ID des Projekts, von dem eine Liste der VM-Instanzen abgerufen werden soll.
Spot-VM-Instanz erstellen
gcloud
gcloud compute instances create VM_NAME \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY_NAME \
--image-project=IMAGE_PROJECT \
--machine-type=a3-highgpu-1g \
--maintenance-policy=TERMINATE \
--boot-disk-size=30G \
--confidential-compute-type=TDX \
Geben Sie folgende Werte an:
VM_NAME
: Der Name der neuen VM-Instanz.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Imageprojekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie das Image-Projektubuntu-os-cloud
verwenden, empfehlen wir die Image-Familieubuntu-2204-lts
. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.
REST
Senden Sie zum Erstellen einer Spot-VM-Instanz die folgende POST-Anfrage mit dem entsprechenden Textkörper.
HTTP-Methode und URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
JSON-Text anfordern:
{
"name": "VM_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "TDX"
},
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT",
},
"disks": [
{
"type": "PERSISTENT",
"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"
}
}
],
"networkInterfaces": [
{
"name": "nic0",
"network": "projects/PROJECT_ID/global/networks/default",
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT",
"kind": "compute#accessConfig",
"networkTier": "PREMIUM"
}
],
"kind": "compute#networkInterface"
}
],
"machineType": "zones/ZONE/machineTypes/a3-highgpu-1g",
}
Geben Sie folgende Werte an:
VM_NAME
: Der Name der neuen VM-Instanzvorlage.IMAGE_PROJECT
: Das Projekt, das das unterstützte Betriebssystem-Image enthält. Wir empfehlen, dasubuntu-os-cloud
-Imageprojekt für Ubuntu-Images zu verwenden. Optional können Sie das Image-Projektconfidential-vm-images
für Container-Optimized OS-Images verwenden.IMAGE_FAMILY_NAME
: Die Familie für das von Confidential VMs unterstützte Betriebssystem-Image. Wenn Sie das Image-Projektubuntu-os-cloud
verwenden, empfehlen wir die Image-Familieubuntu-2204-lts
. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.ZONE
: Die unterstützte Zone, in der die VM erstellt werden soll.
Confidential Computing-Modus auf der GPU aktivieren
Stellen Sie mit dem Befehl gcloud compute ssh eine Verbindung zu einer VM-Instanz in der MIG her.
gcloud compute ssh
Aktualisieren Sie die Paketliste und installieren Sie die erforderlichen Tools und Bibliotheken.
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
Installieren Sie die entsprechenden GPU-Treiber auf der VM-Instanz.
Aktivieren Sie die Linux Kernel Crypto API (LKCA), um eine sichere Kommunikation zwischen der GPU und dem GPU-Treiber zu konfigurieren.
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
Aktivieren Sie den Persistenzmodus, um eine sichere SPDM-Verbindung (Security Protocol and Data Model) zwischen der GPU und dem GPU-Treiber zu ermöglichen.
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
Starten Sie die VM-Instanz neu, um die LKCA- und Persistenzmoduskonfigurationen anzuwenden.
sudo reboot
Optional: Installieren Sie CUDA-Beispiele, um den Confidential Computing-Modus zu aktivieren.
wget -O cuda-samples.tar.gz https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.5.tar.gz tar xzvf cuda-samples.tar.gz