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-VMs auf Grundlage des Maschinentyps a3-highgpu-1g erstellen und Intel TDX verwenden. Nachdem Sie die VM-Instanz erstellt haben, aktivieren Sie den Confidential Computing-Modus auf der angehängten GPU.
So erstellen Sie eine VM-Instanz mit dem Spot- oder Flex-Start-Modell:
Wenn Sie das Spot-Modell verwenden möchten, erstellen Sie eine beschleunigungsoptimierte Spot-VM-Instanz. Eine detaillierte Anleitung finden Sie unter Spot-Modell.
Wenn Sie das Flex-Start-Modell verwenden möchten, erstellen Sie eine verwaltete Instanzgruppe (MIG). Eine ausführliche Anleitung finden Sie unter Flex-Start-Modell.
Spot-Modell
gcloud
Verwenden Sie zum Erstellen einer beschleunigungsoptimierten Spot-VM-Instanz mit der gcloud CLI den Unterbefehl instances create
mit dem Flag --provisioning-model
.
gcloud compute instances create VM_NAME \
--provisioning-model=SPOT \
--image-family=IMAGE_FAMILY_NAME \
--image-project=IMAGE_PROJECT \
--machine-type=a3-highgpu-1g \
--zone=ZONE \
--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
-Image-Projekt 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 dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. Verwenden Sie für Container-Optimized OS-Images aus dem Projektconfidential-vm-images
die Image-Familiecos-tdx-113-lts
.ZONE
: Die unterstützte Zone, in der die VM erstellt werden soll.
REST
Senden Sie zum Erstellen einer Spot-VM-Instanz die folgende POST-Anfrage mit dem entsprechenden Inhalt des Anfragetexts.
Die 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
-Image-Projekt 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 dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. 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.
Flex-Start-Modell
Wenn Sie das Flex-Start-Modell verwenden möchten, erstellen Sie eine Instanzvorlage und dann eine MIG mit dieser Vorlage. Anschließend können Sie der MIG mithilfe von Anfragen zur Größenänderung GPU-VM-Instanzen hinzufügen.
Wenn Sie eine Anfrage zur Größenanpassung für eine MIG mit dem Bereitstellungsmodell „Flex-Start“ verwenden, wird die Verfügbarkeit von GPU-VM-Instanzen verbessert. Weitere Informationen finden Sie unter Anfragen zur Größenänderung in einer MIG.
Hinweise
- Prüfen Sie Ihr GPU-Kontingent, damit Ihr Kontingent für die angeforderten Ressourcen ausreicht.
Wenn Sie eine vertrauliche VM-Instanz mit einer GPU verwenden möchten, fordern Sie ein GPU-Kontingent auf Abruf an. 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. - Informationen zum Kontingentverbrauch finden Sie unter GPU-VMs und Zuteilungskontingente auf Abruf.
- Voraussetzungen für das Erstellen einer MIG und Beschränkungen für das Erstellen einer Anfrage zur Größenänderung in einer MIG
MIG mit GPU-VM-Instanzen erstellen
Führen Sie die folgenden Schritte aus, um eine Instanzvorlage zu erstellen und dann anhand der Vorlage eine MIG zu erstellen.
Erstellen Sie eine Instanzvorlage.
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
Wenn Sie Secure Boot aktivieren möchten, können Sie optional das Flag
--shielded-secure-boot
für VM-Instanz-Boots verwenden.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
-Image-Projekt 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 dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. 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
Senden Sie zum Erstellen einer Vorlage für Confidential VM-Instanzen die folgende POST-Anfrage mit dem entsprechenden Inhalt des Anfragetexts.
Die 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 VM-Instanz-Boots einfügen.
"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
-Image-Projekt 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 dasubuntu-os-cloud
-Image-Projekt verwenden, empfehlen wir die Verwendung derubuntu-2204-lts
-Image-Familie. 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 MIG erstellt werden soll.
Erstellen Sie eine MIG und eine Anfrage zur Größenanpassung, 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 von VM-Instanzen abgerufen werden soll.PROJECT_ID
: Optional. Die ID des Projekts, aus dem eine Liste von VM-Instanzen abgerufen werden soll.
REST
Senden Sie die folgende GET-Anfrage, um alle Instanzen aufzulisten.
Die 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.
Die 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 von VM-Instanzen abgerufen werden soll.PROJECT_ID
: Die ID des Projekts, aus dem eine Liste der VM-Instanzen abgerufen 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 gcc-12
Installieren Sie die entsprechenden GPU-Treiber auf der VM-Instanz. Informationen zu VM-Instanzen mit aktiviertem Secure Boot finden Sie unter GPU-Treiber installieren (Secure Boot-VMs). Wir empfehlen die Verwendung der Treiberversion
nvidia-550-server-open
.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 gewährleisten.
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 die folgenden CUDA-Beispiele.
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