Sie können aktive GPU-Arbeitslastdaten verschlüsseln, indem Sie die Arbeitslasten auf verschlüsselten Confidential Google Kubernetes Engine-Knoten ausführen. Auf dieser Seite erfahren Sicherheitsingenieure und ‑operatoren, wie sie die Sicherheit der Daten in beschleunigten Arbeitslasten wie KI-/ML-Aufgaben verbessern können. Sie sollten mit den folgenden Konzepten vertraut sein:
GPU-Arbeitslasten auf Confidential GKE Nodes ausführen
Sie können Confidential GKE Nodes für Ihre GPU-Arbeitslasten mit einer der folgenden Methoden anfordern:
- Sie können vertrauliche GKE-Knoten für Ihre GPU-Arbeitslasten automatisch mit ComputeClasses von GKE bereitstellen. Diese Methode kann in Autopilot-Clustern und in Standardclustern verwendet werden. Weitere Informationen finden Sie im Abschnitt ComputeClasses zum Ausführen von GPU-Arbeitslasten auf vertraulichen GKE-Knoten verwenden.
- Konfigurieren Sie Confidential GKE Nodes manuell für Ihre Standardcluster oder Knotenpools. Weitere Informationen finden Sie im Abschnitt Confidential GKE Nodes in GKE Standard manuell konfigurieren.
Beschränkungen
Im Autopilot-Modus werden nur NVIDIA H100-GPUs (80 GB) mit Confidential GKE Nodes unterstützt.
Hinweis
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diesen Task verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit dem Befehl
gcloud components updateab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.
Voraussetzungen
Unabhängig von der Konfigurationsmethode für Confidential GKE Nodes, die Sie auswählen, müssen Sie alle folgenden Anforderungen erfüllen:
- Die Knoten müssen sich in einer Zone befinden, die NVIDIA Confidential Computing unterstützt. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
- Die Knoten müssen einen unterstützten Maschinentyp, Confidential Computing-Technologie und GPU verwenden. Weitere Informationen finden Sie unter Unterstützte Konfigurationen.
- Sie benötigen ein Kontingent für auf Abruf verwendete GPUs für die GPUs, die Sie in Ihren Knotenstandorten verwenden möchten. Wenn Sie beispielsweise NVIDIA H100-GPUs (80 GB) verwenden, benötigen Sie ein Kontingent für
compute.googleapis.com/preemptible_nvidia_h100_gpus. Weitere Informationen zum Verwalten Ihres Kontingents finden Sie unter Kontingente ansehen und verwalten.
Zusätzlich zu diesen Anforderungen müssen Sie je nach der von Ihnen gewählten Konfigurationsmethode für Confidential GKE Nodes bestimmte Bedingungen erfüllen, wie in der folgenden Tabelle beschrieben:
| Konfigurationsmethode | Voraussetzungen | Beschränkungen |
|---|---|---|
| ComputeClasses |
|
|
| Manuelle Konfiguration im Standardmodus |
|
|
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Google Cloud Projekt zuzuweisen, damit Sie die nötigen Berechtigungen zum Erstellen vertraulicher GKE-Knoten haben:
-
Confidential GKE Nodes erstellen:
Administrator für Kubernetes Engine-Cluster (
roles/container.clusterAdmin) -
GPU-Arbeitslasten bereitstellen:
Kubernetes Engine-Entwickler (
roles/container.developer)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
ComputeClasses zum Ausführen vertraulicher GPU-Arbeitslasten verwenden
Sie können die Konfiguration für Confidential GKE Nodes in einer ComputeClass definieren. ComputeClasses sind benutzerdefinierte Kubernetes-Ressourcen, mit denen Sie deklarativ Knotenkonfigurationen für GKE-Autoscaling und -Planung festlegen können. Sie können die Schritte in diesem Abschnitt in jedem Autopilot- oder Standardcluster ausführen, auf dem GKE-Version 1.33.3-gke.1392000 oder höher ausgeführt wird.
So verwenden Sie eine ComputeClass, um GPU-Arbeitslasten auf Confidential GKE Nodes auszuführen:
Speichern Sie das folgende ComputeClass-Manifest als YAML-Datei:
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTECLASS_NAME spec: nodePoolConfig: confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - gpu: type: GPU_TYPE count: GPU_COUNT driverVersion: default spot: true activeMigration: optimizeRulePriority: true nodePoolAutoCreation: enabled: true whenUnsatisfiable: DoNotScaleUpErsetzen Sie Folgendes:
COMPUTECLASS_NAME: ein Name für die ComputeClass.CONFIDENTIAL_COMPUTE_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie, z. B.TDX. Wählen Sie eine Technologie aus, die von der GPU unterstützt wird, die Sie verwenden möchten.ZONE1,ZONE2: Eine durch Kommas getrennte Liste von Zonen, in denen Knoten erstellt werden sollen, z. B.['us-central1-a','us-central1-b']. Geben Sie Zonen an, die die Confidential Computing-Technologie und den Maschinentyp unterstützen, den Sie verwenden möchten. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.GPU_TYPE: Der zu verwendende GPU-Typ, z. B.nvidia-h100-80gb.GPU_COUNT: Die Anzahl der GPUs, die an jeden Knoten angehängt werden sollen. Geben Sie einen Wert an, der von Confidential VM für den GPU-Typ unterstützt wird. Wenn Sie beispielsweise den GPU-Typnvidia-h100-80gbauswählen, müssen Sie in diesem Feld den Wert1angeben.
ComputeClass erstellen:
kubectl apply -f PATH_TO_MANIFESTErsetzen Sie
PATH_TO_MANIFESTdurch den Pfad zur ComputeClass-Manifestdatei.Wenn Sie Ihre GPU-Arbeitslast auf Confidential GKE Nodes ausführen möchten, wählen Sie die ComputeClass im Arbeitslastmanifest aus. Speichern Sie beispielsweise das folgende Bereitstellungsmanifest, in dem eine ComputeClass und GPUs ausgewählt werden, als YAML-Datei:
apiVersion: apps/v1 kind: Deployment metadata: name: confidential-gpu-deployment labels: app: conf-gpu spec: selector: matchLabels: app: conf-gpu replicas: 1 template: metadata: labels: app: conf-gpu spec: nodeSelector: cloud.google.com/compute-class: COMPUTECLASS_NAME containers: - name: example-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 resources: limits: cpu: "4" memory: "16Gi" nvidia.com/gpu: GPU_REQUEST requests: cpu: "4" memory: "16Gi"Ersetzen Sie Folgendes:
COMPUTECLASS_NAME: Der Name der von Ihnen erstellten ComputeClass.GPU_REQUEST: Die Anzahl der GPUs, die im Container verwendet werden sollen. Geben Sie einen Wert an, der kleiner oder gleich dem Wert ist, den Sie im Feldgpu.countder ComputeClass angegeben haben.
Erstellen Sie das Deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFESTErsetzen Sie
PATH_TO_DEPLOYMENT_MANIFESTdurch den Pfad zum Deployment-Manifest.
Wenn Sie Ihre GPU-Arbeitslast erstellen, verwendet GKE die Konfiguration in der ComputeClass, um Confidential GKE Nodes mit angehängten GPUs zu erstellen.
Confidential GKE Nodes in GKE Standard manuell konfigurieren
Sie können GPU-Arbeitslasten auf Confidential GKE Nodes in Clustern oder Knotenpools im Standardmodus ausführen.
Confidential GKE Nodes in neuen Standardclustern aktivieren
Sie können Confidential GKE Nodes für Ihren gesamten Standardcluster aktivieren, sodass jeder GPU-Knotenpool, den Sie erstellen, dieselbe Confidential Computing-Technologie verwendet. Wenn Sie einen neuen Cluster im Standardmodus erstellen, der Confidential GKE Nodes für GPU-Arbeitslasten verwendet, müssen Sie die folgenden Clustereinstellungen angeben:
- Standort: Eine Region oder Zone, die NVIDIA Confidential Computing unterstützt. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.
- Confidential Computing-Typ: Eine Confidential Computing-Technologie, die GPUs unterstützt. Weitere Informationen finden Sie unter Unterstützte Konfigurationen.
Clusterversion: eine der folgenden Versionen, je nachdem, wie Sie Ihre GPU-Treiber installieren möchten:
- Manuelle GPU-Treiberinstallation: 1.32.2-gke.1297000 oder höher.
- Automatische Installation von GPU-Treibern: 1.33.3-gke.1392000 oder höher.
Sie können optional GPUs für den Standardknotenpool konfigurieren, den GKE in Ihrem Cluster erstellt. Wir empfehlen jedoch, einen separaten Knotenpool für Ihre GPUs zu verwenden, damit in mindestens einem Knotenpool im Cluster jede Arbeitslast ausgeführt werden kann.
Weitere Informationen finden Sie unter Confidential GKE Nodes in Standardclustern aktivieren.
Confidential GKE Nodes mit GPUs in Standardknotenpools verwenden
Wenn in Ihrem Cluster keine vertraulichen GKE-Knoten aktiviert sind, können Sie vertrauliche GKE-Knoten in bestimmten neuen oder vorhandenen GPU-Knotenpools aktivieren. Die Steuerungsebene und die Knotenpools müssen die Anforderungen im Abschnitt Verfügbarkeit erfüllen. Wenn Sie den Knotenpool konfigurieren, können Sie auswählen, ob GPU-Treiber automatisch oder manuell installiert werden sollen.
Wählen Sie eine der folgenden Optionen aus, um einen neuen GPU-Knotenpool zu erstellen, der Confidential GKE Nodes verwendet:
Console
Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf:
Klicken Sie auf den Namen des Standardmodus-Clusters, den Sie ändern möchten.
Klicken Sie auf den Tab Knoten.
Klicken Sie auf Vom Nutzer verwalteten Knotenpool erstellen. Die Seite Knotenpool hinzufügen wird geöffnet.
Führen Sie im Bereich Knotenpooldetails die folgenden Schritte aus:
- Wählen Sie Knotenstandorte angeben aus.
- Wählen Sie nur die unterstützten Zonen aus, die im Abschnitt Verfügbarkeit aufgeführt sind.
- Achten Sie darauf, dass die Version der Steuerungsebene eine der Versionen ist, die im Abschnitt Verfügbarkeit aufgeführt sind.
Klicken Sie im Navigationsmenü auf Knoten.
Führen Sie im Bereich Knoteneinstellungen konfigurieren die folgenden Schritte aus:
- Klicken Sie im Abschnitt Maschinenkonfiguration auf GPUs.
- Wählen Sie im Menü GPU-Typ einen GPU-Typ aus, der von Confidential Computing unterstützt wird.
- Wählen Sie im Menü Anzahl der GPUs die Anzahl der GPUs aus, die an jeden Knoten angehängt werden sollen. Wählen Sie einen Wert aus, der vom ausgewählten GPU-Typ unterstützt wird. Wenn Sie beispielsweise NVIDIA H100-GPUs (80 GB) ausgewählt haben, wählen Sie 1 aus.
- Achten Sie darauf, dass GPU-Freigabe aktivieren nicht ausgewählt ist.
Wählen Sie im Bereich GPU-Treiberinstallation eine der folgenden Optionen aus:
Von Google verwaltet: GKE installiert automatisch einen Treiber. Wenn Sie diese Option auswählen, wählen Sie in der Drop-down-Liste Version eine der folgenden Treiberversionen aus:
- Standard: Installieren Sie die Standardtreiberversion für die GKE-Version des Knotens. Erfordert GKE-Version 1.33.3-gke.1392000 oder höher.
- Neueste: Installieren Sie die neueste Treiberversion für die GKE-Version des Knotens. Erfordert GKE-Version 1.33.3-gke.1392000 oder höher.
Vom Nutzer verwaltet: Die automatische Treiberinstallation wird übersprungen. Wenn Sie diese Option auswählen, müssen Sie einen kompatiblen GPU-Treiber manuell installieren. Erfordert 1.32.2-gke.1297000 oder höher.
Achten Sie im Abschnitt Maschinentyp darauf, dass der Maschinentyp ein GPU-Maschinentyp ist, der von Confidential VM für den ausgewählten GPU-Typ unterstützt wird.
Wählen Sie Knoten auf Spot-VMs aktivieren aus oder konfigurieren Sie Flex-Start-VMs mit der Warteschlangenbereitstellung.
Wenn Sie bereit sind, den Knotenpool zu erstellen, klicken Sie auf Erstellen.
gcloud
Sie können GPU-Knotenpools erstellen, auf denen Confidential GKE Nodes auf Spot-VMs oder mit Flex-Start-VMs mit in die Warteschlange gestellter Bereitstellung ausgeführt werden.
Erstellen Sie einen GPU-Knotenpool, in dem Confidential GKE Nodes auf Spot-VMs ausgeführt werden:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY \ --location=LOCATION \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --spot \ --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSION \ --machine-type=MACHINE_TYPEErsetzen Sie Folgendes:
NODE_POOL_NAME: Ein Name für den neuen Knotenpool.CLUSTER_NAMEist der Name Ihres vorhandenen Clusters.CONFIDENTIAL_COMPUTE_TECHNOLOGY: Die zu verwendende Confidential Computing-Technologie, z. B.TDX. Wählen Sie eine Technologie aus, die von der GPU unterstützt wird, die Sie verwenden möchten.LOCATION: Der Standort für den neuen Knotenpool. Der Standort muss die Verwendung von GPUs in Confidential GKE Nodes unterstützen.NODE_LOCATION1,NODE_LOCATION2,...: eine durch Kommas getrennte Liste von Zonen, in denen die Knoten ausgeführt werden sollen. Geben Sie Zonen an, die die Confidential Computing-Technologie und den Maschinentyp unterstützen, den Sie verwenden möchten. Weitere Informationen finden Sie unter Unterstützte Zonen ansehen.GPU_TYPE: Der zu verwendende GPU-Typ, z. B.nvidia-h100-80gb.GPU_COUNT: Die Anzahl der GPUs, die an jeden Knoten angehängt werden sollen. Geben Sie einen Wert an, der von Confidential VM für den GPU-Typ unterstützt wird. Wenn Sie beispielsweise den GPU-Typnvidia-h100-80gbauswählen, müssen Sie in diesem Feld den Wert1angeben.DRIVER_VERSION: die zu installierende GPU-Treiberversion. Geben Sie einen der folgenden Werte an:default: Installieren Sie die Standardtreiberversion für die GKE-Version des Knotens. Erfordert GKE-Version 1.33.3-gke.1392000 oder höher.latest: Installieren Sie die neueste Treiberversion für die GKE-Version des Knotens. Erfordert GKE-Version 1.33.3-gke.1392000 oder höher.disabled: Die automatische Treiberinstallation wird übersprungen. Wenn Sie diesen Wert angeben, müssen Sie einen kompatiblen GPU-Treiber manuell installieren. Erfordert Version 1.32.2-gke.1297000 oder höher.
MACHINE_TYPE: Der für die Knoten zu verwendende Maschinentyp. Geben Sie einen GPU-Maschinentyp an, der von Confidential VMs für den ausgewählten GPU-Typ unterstützt wird.
Erstellen Sie einen GPU-Knotenpool, in dem Confidential GKE Nodes ausgeführt werden, indem Sie Flex-Start-VMs mit in die Warteschlange gestellter Bereitstellung verwenden:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-locations=NODE_LOCATION1,NODE_LOCATION2,... \ --machine-type=MACHINE_TYPE \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY \ --location=LOCATION \ --flex-start --enable-queued-provisioning \ --enable-autoscaling --num-nodes=0 --total-max-nodes=TOTAL_MAX_NODES \ --location-policy=ANY --reservation-affinity=none --no-enable-autorepair \ --accelerator=type=GPU_TYPE,count=GPU_COUNT,gpu-driver-version=DRIVER_VERSIONErsetzen Sie
TOTAL_MAX_NODESdurch die maximale Anzahl von Knoten, auf die der Knotenpool automatisch skaliert werden kann.Weitere Informationen zu den Konfigurationsoptionen für Flex-Start mit in die Warteschlange gestellter Bereitstellung finden Sie unter Arbeitslast im großen Ma��stab mit Flex-Start und in die Warteschlange gestellter Bereitstellung ausführen.
Informationen zum Aktualisieren vorhandener Knotenpools für die Verwendung von Confidential Computing finden Sie unter Vorhandenen Knotenpool aktualisieren.
GPU-Treiber manuell installieren, die Confidential GKE Nodes unterstützen
Wenn Sie beim Erstellen oder Aktualisieren Ihrer Knotenpools die automatische Treiberinstallation nicht aktiviert haben, müssen Sie manuell einen GPU-Treiber installieren, der vertrauliche GKE-Knoten unterstützt.
Für diese Änderung müssen die Knoten neu erstellt werden, was zu Unterbrechungen bei Ihren ausgeführten Arbeitslasten führen kann. Weitere Informationen zu dieser spezifischen Änderung finden Sie in der entsprechenden Zeile in der Tabelle Manuelle Änderungen, bei denen die Knoten mit einer Knotenupgrade-Strategie neu erstellt werden, ohne Wartungsrichtlinien zu berücksichtigen. Weitere Informationen zu Knotenupdates finden Sie unter Unterbrechungen durch Knotenupdates planen.
Eine Anleitung finden Sie auf dem Tab „COS“ unter NVIDIA-GPU-Treiber manuell installieren.
Fehlerbehebung
Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei GPUs in GKE.
Nächste Schritte
- Prüfen, ob Ihre GPU-Knoten Confidential GKE Nodes verwenden
- Arbeitslast auf GPU-Knoten bereitstellen
- Methoden zum Ausführen umfangreicher Arbeitslasten mit GPUs