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-Instanzen 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.
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.
Flashen Sie die GPU-Firmware der Confidential VM-Instanzen mit angehängten GPUs nicht. Dieser Vorgang kann zu Instabilität und potenziellen Systemabstürzen führen.
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 INSTANCE_NAME \
--provisioning-model=SPOT \
--confidential-compute-type=TDX \
--machine-type=a3-highgpu-1g \
--maintenance-policy=TERMINATE \
--zone=ZONE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY_NAME \
--boot-disk-size=30G
Geben Sie folgende Werte an:
INSTANCE_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_NAME
: Die unterstützte Zone, in der die VM erstellt werden soll.
REST
Senden Sie die folgende POST-Anfrage mit dem entsprechenden Inhalt des Anfragetexts, um eine Spot-VM-Instanz zu erstellen.
Die HTTP-Methode und URL:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
JSON-Text anfordern:
{
"name": "INSTANCE_NAME",
"confidentialInstanceConfig": {
"confidentialInstanceType": "TDX"
},
"machineType": "zones/ZONE_NAME/machineTypes/a3-highgpu-1g",
"scheduling": {
"onHostMaintenance": "TERMINATE",
"provisioningModel": "SPOT"
},
"disks": [
{
"autoDelete": true,
"boot": true,
"index": 0,
"initializeParams": {
"diskSizeGb": "30",
"sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME"
},
"kind": "compute#attachedDisk",
"mode": "READ_WRITE",
"type": "PERSISTENT"
}
],
"networkInterfaces": [
{
"accessConfigs": [
{
"name": "external-nat",
"type": "ONE_TO_ONE_NAT",
"kind": "compute#accessConfig",
"networkTier": "PREMIUM"
}
],
"kind": "compute#networkInterface",
"name": "nic0",
"network": "projects/PROJECT_ID/global/networks/default"
}
]
}
Geben Sie folgende Werte an:
INSTANCE_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_NAME
: 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 zuerst eine Instanzvorlage und dann eine verwaltete Instanzgruppe (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
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 beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --provisioning-model=FLEX_START \ --confidential-compute-type=TDX \ --machine-type=a3-highgpu-1g \ --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
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
.RUN_DURATION
: Die Dauer, für die die angeforderten VM-Instanzen ausgeführt werden sollen. Sie müssen den Wert als Anzahl der Tage, Stunden, Minuten oder Sekunden gefolgt vond
,h
,m
bzw.s
formatieren. Geben Sie beispielsweise30m
für 30 Minuten oder1d2h3m4s
für einen Tag, zwei Stunden, drei Minuten und vier Sekunden an. Der Wert muss zwischen 10 Minuten und 7 Tagen liegen.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/beta/projects/PROJECT_ID/regions/ZONE_NAME/instanceTemplates
JSON-Text anfordern:
{ "name": "INSTANCE_TEMPLATE_NAME", "properties": { "confidentialInstanceConfig": { "confidentialInstanceType": "TDX" }, "machineType": "a3-highgpu-1g", "scheduling": { "instanceTerminationAction": "DELETE", "maxRunDuration": { "seconds": RUN_DURATION }, "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 } }
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:
PROJECT_ID
: Optional. Die ID des Projekts, in dem die VM erstellt werden soll.ZONE_NAME
: Die unterstützte Zone, in der die MIG erstellt werden soll.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
.RUN_DURATION
: Die Dauer in Sekunden, für die die angeforderten VM-Instanzen ausgeführt werden sollen. Der Wert muss zwischen600
und604800
Sekunden liegen, was einem Bereich zwischen 10 Minuten und 7 Tagen entspricht.
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_NAME \ --project=PROJECT_ID
Geben Sie folgende Werte an:
INSTANCE_GROUP_NAME
: Name der MIG.ZONE_NAME
: 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_NAME/instanceTemplates
Geben Sie folgende Werte an:
ZONE_NAME
: 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-driver-575-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 herzustellen.
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
Nächste Schritte
So prüfen Sie, ob der Modus „Vertraulich“ auf GPUs aktiviert ist