In diesem Dokument wird beschrieben, wie Sie einen KI-optimierten GKE-Cluster (Google Kubernetes Engine) erstellen, der A4X Max Compute Engine-Instanzen verwendet, um Ihre KI- und ML-Arbeitslasten zu unterstützen.
Mit der A4X Max- und der A4X-Serie können Sie große KI-/ML-Cluster mit dem NVIDIA Multi-Node NVLink-System (MNNVL) ausführen, einer Lösung auf Rack-Ebene, die eine höhere GPU-Leistung ermöglicht. Diese Maschinen bieten Funktionen wie gezielte Arbeitslastplatzierung, Topologie-abhängige Planung und erweiterte Clusterwartungsfunktionen. Weitere Informationen finden Sie unter Clusterverwaltungsfunktionen. Mit A4X Max bietet GKE auch eine automatisierte Netzwerkeinrichtung, die die Clusterkonfiguration vereinfacht.
KI- und ML-Arbeitslasten wie verteiltes Training erfordern eine leistungsstarke Beschleunigung, um die Leistung zu optimieren, indem die Jobabschlusszeiten verkürzt werden. GKE bietet eine einheitliche Plattform, auf der Sie eine Vielzahl von Arbeitslasten für Ihre Organisationen ausführen können. So wird der betriebliche Aufwand für die Verwaltung mehrerer Plattformen reduziert. Sie können Arbeitslasten wie verteiltes Vortraining mit hoher Leistung, Modell-Feinabstimmung, Modellinferenz, Anwendungsbereitstellung und unterstützende Dienste ausführen. Für Arbeitslasten, die hohe Leistung, hohen Durchsatz und niedrige Latenz erfordern, reduziert GPUDirect RDMA die Anzahl der Netzwerksprünge, die für die Übertragung von Nutzlasten zu und von GPUs erforderlich sind. So wird die verfügbare Netzwerkbandbreite effizienter genutzt. Weitere Informationen finden Sie unter GPU-Netzwerk stacks.
In diesem Dokument erfahren Sie, wie Sie einen GKE-Cluster mit der Google Cloud CLI erstellen, um die Konfiguration Ihres Clusters basierend auf den Anforderungen Ihrer Arbeitslast maximal flexibel zu gestalten. Informationen zum Erstellen von Clustern mit anderen Maschinentypen mit der gcloud CLI finden Sie unter:
- A4X: Benutzerdefinierten KI-optimierten GKE-Cluster mit A4X erstellen.
- A4 oder A3 Ultra: Informationen zum Erstellen eines Clusters mit A4 oder A3 Ultra finden Sie unter Benutzerdefinierten KI-optimierten GKE-Cluster mit A4 oder A3 Ultra erstellen. Sie können diese Maschinenserien verwenden, um Arbeitslasten mit oder ohne GPUDirect RDMA auszuführen.
Alternativ können Sie mit dem Cluster Toolkit Ihren Cluster schnell mit Standardeinstellungen bereitstellen, die Best Practices für viele Anwendungsfälle widerspiegeln. Weitere Informationen finden Sie unter KI-optimierten GKE Cluster mit Standardkonfiguration erstellen.
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 diese Aufgabe verwenden möchten,
installieren und dann
initialisieren Sie die
gcloud CLI. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste
Version mit dem
gcloud components updateBefehl ab. Ältere gcloud CLI-Versionen unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.
Kapazität erhalten
Sie können Kapazität für A4X Max-Compute-Instanzen erhalten, indem Sie eine vorausschauende Reservierung erstellen. Weitere Informationen zu vorausschauenden Reservierungen finden Sie in der Tabelle unter Verbrauchsoption auswählen in der Spalte Vorausschauende Reservierungen in AI Hypercomputer.
Informationen zum Erhalten von Kapazität mit einer vorausschauenden Reservierung finden Sie in der Tabelle unter Kapazität erhalten in der Zeile Vorausschauende Reservierungen in AI Hypercomputer.
Voraussetzungen
Die folgenden Anforderungen gelten für einen KI-optimierten GKE-Cluster mit A4X Max-Compute-Instanzen:
Für A4X Max müssen Sie eine der folgenden Versionen verwenden:
- Für 1.35 oder höher verwenden Sie GKE-Version 1.35.0-gke.2745000 oder höher.
- Für 1.34 verwenden Sie GKE-Version 1.34.3-gke.1318000 oder höher.
Mit diesen Versionen wird sichergestellt, dass A4X Max Folgendes verwendet:
- R580.95.05, die GPU-Mindesttreiberversion für A4X Max, die standardmäßig aktiviert ist.
- Coherent Driver-based Memory Management (CDMM), das standardmäßig aktiviert ist. NVIDIA empfiehlt, diesen Modus für Kubernetes-Cluster zu aktivieren, um zu hohe Arbeitsspeicherangaben zu vermeiden. Mit CDMM kann der GPU-Arbeitsspeicher über den Treiber anstelle des Betriebssystems verwaltet werden. So können Sie vermeiden, dass das Betriebssystem den GPU-Arbeitsspeicher online schaltet, und der GPU-Arbeitsspeicher wird dem Betriebssystem als NUMA-Knoten (Non-Uniform Memory Access) zur Verfügung gestellt. Multi-Instanz-GPUs werden nicht unterstützt, wenn CDMM aktiviert ist. Weitere Informationen zu CDMM finden Sie unter Hardware- und Software Support.
- GPUDirect RDMA und MNNVL, die empfohlen werden, damit A4X Max-Knotenpools die Netzwerkfunktionen von A4X Max nutzen können.
Die GKE-Knoten müssen ein Knoten-Image für Container-Optimized OS verwenden. Ubuntu- und Windows-Knoten-Images werden nicht unterstützt.
Ihre GKE-Arbeitslast muss alle verfügbaren GPUs verwenden und Ihr Pod muss alle verfügbaren sekundären NICs auf einem einzelnen GKE-Knoten verwenden. Mehrere Pods können RDMA nicht auf einem einzelnen GKE-Knoten gemeinsam nutzen.
Sie müssen das reservierungsgebundene Bereitstellungsmodell verwenden, um Cluster mit A4X Max zu erstellen. Andere Bereitstellungs modelle werden nicht unterstützt.
In dieser Anleitung wird DRANET verwendet, um einen KI-optimierten GKE-Cluster mit A4X Max zu konfigurieren. Multi-Networking wird für den
a4x-maxgpu-4g-metalMaschinentyp nicht unterstützt.
Überlegungen zum Erstellen eines Clusters
Beachten Sie beim Erstellen eines Clusters die folgenden Informationen:
- Clusterstandort auswählen:
- Verwenden Sie einen Standort, an dem der von Ihnen ausgewählte Maschinentyp verfügbar ist. Weitere Informationen finden Sie unter Verfügbarkeit von Beschleunigern.
- Wenn Sie Knotenpools in einem regionalen
Cluster erstellen, die
für Produktionsarbeitslasten empfohlen werden, können Sie mit dem
--node-locationsFlag die Zonen für Ihre GKE-Knoten angeben.
- Treiberversion auswählen:
- Die Treiberversion kann einen der folgenden Werte haben:
default: Installieren Sie die Standardtreiberversion für Ihre GKE-Knotenversion. Weitere Informationen zu den Anforderungen an Standardtreiberversionen finden Sie im Abschnitt Anforderungen.latest: Installieren Sie die neueste verfügbare Treiberversion für Ihre GKE-Version. Diese Option ist nur für Knoten verfügbar, die Container-Optimized OS verwenden.disabled: Überspringen Sie die automatische Treiberinstallation. Sie müssen manuell einen Treiber installieren, nachdem Sie den Knotenpool erstellt haben.
- Weitere Informationen zu den Standard- und neuesten GPU-Treiberversionen für GKE-Knotenversionen finden Sie in der Tabelle im Abschnitt NVIDIA-GPU-Treiber manuell installieren.
- Die Treiberversion kann einen der folgenden Werte haben:
Reservierungsaffinität auswählen:
- Sie können Informationen zu Ihrer Reservierung abrufen, z. B. den Namen Ihrer Reservierung oder den Namen eines bestimmten Blocks in Ihrer Reservierung. Informationen zum Abrufen dieser Werte finden Sie unter Zukünftige Reservierungsanfragen anzeigen .
- Das Flag
--reservation-affinitykann die Wertespecificoderanyannehmen. Für verteilte KI-Arbeitslasten mit hoher Leistung empfehlen wir jedoch, eine bestimmte Reservierung zu verwenden. Wenn Sie eine bestimmte Reservierung verwenden, einschließlich freigegebener Reservierungen, geben Sie den Wert des Flags
--reservationim folgenden Format an:projects/PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/BLOCK_NAMEErsetzen Sie die folgenden Werte:
PROJECT_ID: Ihre Google Cloud Projekt-ID.RESERVATION_NAME: Der Name Ihrer Reservierung.BLOCK_NAME: Der Name eines bestimmten Blocks innerhalb der Reservierung.
Wir empfehlen außerdem, eine Reservierung für einen Unterblock zu verwenden, damit Compute-Instanzen in einem einzelnen Unterblock innerhalb von
BLOCK_NAMEplatziert werden. Fügen Sie am Ende des Pfads Folgendes hinzu:/reservationSubBlocks/SUB_BLOCK_NAMEErsetzen Sie
SUB_BLOCK_NAMEdurch den Namen des Unterblocks.
KI-optimierten GKE-Cluster mit A4X Max und GPUDirect RDMA erstellen
Für verteilte KI-Arbeitslasten werden häufig mehrere GPU-Knoten miteinander verbunden, um als ein einzelner Computer zu fungieren. A4X Max ist eine Exascale-Plattform, die auf der NVIDIA GB300 NVL72-Architektur auf Rack-Ebene basiert. A4X Max-Compute-Instanzen verwenden eine mehrschichtige, hierarchische Netzwerkarchitektur mit einem auf Schienen ausgerichteten Design, um die Leistung für verschiedene Kommunikationstypen zu optimieren. Dieser Maschinentyp ermöglicht die Skalierung und Zusammenarbeit über mehrere GPUs hinweg und bietet eine leistungsstarke Cloud-Umgebung für KI-Arbeitslasten. Weitere Informationen zur Netzwerkarchitektur für A4X Max, einschließlich der Netzwerkbandbreite und der NIC-Anordnung, finden Sie unter A4X Max Maschinentyp (Bare Metal).
Führen Sie die Schritte in den folgenden Abschnitten aus, um einen GKE-Standardcluster mit A4X Max zu erstellen, der GPUDirect RDMA und MNNVL verwendet:
- GKE-Cluster erstellen
- Arbeitslastrichtlinie erstellen
- Knotenpool mit A4X Max erstellen
- MRDMA-NICs mit
asapd-litekonfigurieren - NVIDIA Compute Domain CRD und DRA-Treiber installieren
- Arbeitslastmanifest für RDMA- und IMEX-Domain konfigurieren
In dieser Anleitung werden Beschleunigernetzwerk profile verwendet, um VPC-Netzwerke und Subnetze für Ihre A4X Max-Knoten automatisch zu konfigurieren. Alternativ können Sie Ihr VPC-Netzwerk und Ihre Subnetze explizit angeben.
GKE-Cluster erstellen
Erstellen Sie einen GKE-Standardcluster:
gcloud container clusters create CLUSTER_NAME \ --enable-dataplane-v2 \ --enable-ip-alias \ --location=COMPUTE_REGION \ --cluster-version=CLUSTER_VERSION \ --no-enable-shielded-nodes [\ --services-ipv4-cidr=SERVICE_CIDR \ --cluster-ipv4-cidr=POD_CIDR \ --addons=GcpFilestoreCsiDriver=ENABLED]Ersetzen Sie Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.CLUSTER_VERSION: Die Version Ihres neuen Clusters. Weitere Informationen dazu, welche GKE-Version Ihre Konfiguration unterstützt, finden Sie in diesem Dokument unter Anforderungen.COMPUTE_REGION: Der Name der Compute-Region.Optional können Sie die sekundären CIDR-Bereiche für Dienste und Pods explizit angeben. Wenn Sie diese optionalen Flags verwenden, ersetzen Sie die folgenden Variablen:
SERVICE_CIDR: Der sekundäre CIDR-Bereich für Dienste.POD_CIDR: Der sekundäre CIDR-Bereich für Pods.
Wenn Sie diese Flags verwenden, müssen Sie prüfen, ob sich die CIDR-Bereiche nicht mit Subnetzbereichen für zusätzliche Knotennetzwerke überschneiden. Beispiel: betrachten Sie
SERVICE_CIDR=10.65.0.0/19undPOD_CIDR=10.64.0.0/19. Weitere Informationen finden Sie unter Pod-IPv4-Adressbereiche hinzufügen.
Stellen Sie eine Verbindung zu Ihrem Cluster her, um die
kubectl-Befehle in den nächsten Abschnitten auszuführen:gcloud container clusters get-credentials CLUSTER_NAME --location=COMPUTE_REGIONErsetzen Sie Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.COMPUTE_REGION: Der Name der Compute-Region.
Weitere Informationen finden Sie unter kubectl installieren und Clusterzugriff konfigurieren.
Arbeitslastrichtlinie erstellen
Zum Erstellen einer Partition ist eine Arbeitslastrichtlinie erforderlich. Weitere Informationen finden Sie unter Arbeitslastrichtlinie für MIGs.
Erstellen Sie eine HIGH_THROUGHPUT-Arbeitslastrichtlinie, wobei das Feld accelerator_topology auf 1x72 gesetzt ist.
gcloud beta compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
--type HIGH_THROUGHPUT \
--accelerator-topology 1x72 \
--project PROJECT \
--region COMPUTE_REGION
Ersetzen Sie Folgendes:
WORKLOAD_POLICY_NAME: Der Name Ihrer Arbeitslast richtlinie.PROJECT: Der Name Ihres Projekts.COMPUTE_REGION: Der Name der Compute-Region.
Knotenpool mit A4X Max erstellen
Erstellen Sie die folgende Konfigurationsdatei, um Huge Pages mit dem Knotenpool vorab zuzuweisen:
cat > node_custom.yaml <<EOF linuxConfig: hugepageConfig: hugepage_size2m: 4096 EOF export NODE_CUSTOM=node_custom.yamlErstellen Sie einen A4X Max-Knotenpool:
gcloud container node-pools create NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=COMPUTE_REGION \ --node-locations=COMPUTE_ZONE \ --num-nodes=NODE_COUNT \ --placement-policy=WORKLOAD_POLICY_NAME \ --machine-type=a4x-maxgpu-4g-metal \ --accelerator=type=nvidia-gb300,count=4,gpu-driver-version=latest \ --system-config-from-file=${NODE_CUSTOM} \ --accelerator-network-profile=auto \ --node-labels=cloud.google.com/gke-networking-dra-driver=true,cloud.google.com/gke-dpv2-unified-cni=cni-migration \ --reservation-affinity=specific \ --reservation=RESERVATION_NAME/reservationBlocks/BLOCK_NAME/reservationSubBlocks/SUB_BLOCK_NAMEErsetzen Sie Folgendes:
NODE_POOL_NAMEist der Name des Knotenpools.CLUSTER_NAME: Der Name Ihres Clusters.COMPUTE_REGION: Die Compute-Region des Clusters.COMPUTE_ZONE: Die Zone Ihres Knotenpools.NODE_COUNT: Die Anzahl der Knoten für den Knotenpool. Sie muss 18 oder weniger betragen. Wir empfehlen, 18 Knoten zu verwenden, um die GPU-Topologie1x72in einem Unterblock mit einer NVLink-Domain zu erhalten.WORKLOAD_POLICY_NAME: Der Name der zuvor erstellten Arbeitslastrichtlinie.RESERVATION_NAME: Der Name Ihrer Reservierung. Informationen zum Abrufen dieses Werts finden Sie unter Zukünftige Reservierungs anfragen anzeigen.BLOCK_NAME: Der Name eines bestimmten Blocks innerhalb der Reservierung. Informationen zum Abrufen dieses Werts finden Sie unter Zukünftige Reservierungs anfragen anzeigen.
Mit diesem Befehl wird automatisch ein Netzwerk erstellt, das alle A4X Max-Knoten in einer einzelnen Zone mit dem Beschleunigernetzwerkprofil
autoverbindet. Wenn Sie einen Knotenpool mit dem Flag--accelerator-network-profile=autoerstellen, fügt GKE den Knoten automatisch das Labelgke.networks.io/accelerator-network-profile: autohinzu. Wenn Sie Arbeitslasten auf diesen Knoten planen möchten, müssen Sie dieses Label in das FeldnodeSelectorIhrer Arbeitslast einfügen.
MRDMA-NICs mit asapd-lite konfigurieren
Das asapd-lite-DaemonSet konfiguriert die MRDMA-NICs. Ein fehlerhaftes asapd-lite-DaemonSet kann darauf hinweisen, dass keine RDMA-Verbindung besteht.
Installieren Sie das DaemonSet:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/refs/heads/master/asapd-lite-installer/asapd-lite-installer-a4x-max-bm-cos.yamlPrüfen Sie die Replikate im
asapd-lite-DaemonSet:kubectl get daemonset -n kube-system asapd-liteDie Ausgabe sieht etwa so aus:
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE asapd-lite 18 18 18 18 18 <none> 5mDie Anzahl der
READY-Replikate sollte mit der Anzahl der Knoten übereinstimmen, die im Knotenpool erstellt wurden und fehlerfrei sind.
NVIDIA Compute Domain CRD und DRA-Treiber installieren
Mit den folgenden Schritten werden die NVIDIA Compute Domain CRD und der DRA-Treiber installiert, um die Verwendung von MNNVL zu ermöglichen. Weitere Informationen finden Sie unter NVIDIA DRA Driver for GPUs.
Prüfen Sie, ob Helm in Ihrer Entwicklungsumgebung installiert ist. Helm ist in Cloud Shell vorinstalliert.
Es gibt keine spezifischen Anforderungen an die Helm-Version. Sie können jedoch mit dem folgenden Befehl prüfen, ob Helm installiert ist.
helm versionWenn die Ausgabe ähnlich wie
Command helm not foundaussieht, können Sie die Helm CLI installieren:curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 \ && chmod 700 get_helm.sh \ && ./get_helm.shFügen Sie das NVIDIA-Helm-Repository hinzu:
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia \ && helm repo updateErstellen Sie ein
ResourceQuota-Objekt für den DRA-Treiber:export POD_QUOTA=POD_QUOTA kubectl create ns nvidia-dra-driver-gpu kubectl apply -n nvidia-dra-driver-gpu -f - << EOF apiVersion: v1 kind: ResourceQuota metadata: name: nvidia-dra-driver-gpu-quota spec: hard: pods: ${POD_QUOTA} scopeSelector: matchExpressions: - operator: In scopeName: PriorityClass values: - system-node-critical - system-cluster-critical EOFErsetzen Sie
POD_QUOTAdurch eine Zahl, die mindestens das Doppelte der Anzahl der A4X Max-Knoten im Cluster plus 1 beträgt. Wenn Sie beispielsweise 18 A4X Max-Knoten in Ihrem Cluster haben, müssen Sie die Variable auf mindestens 37 setzen.Installieren Sie die ComputeDomain CRD und den DRA-Treiber:
helm install nvidia-dra-driver-gpu nvidia/nvidia-dra-driver-gpu \ --set controller.args.v=4 --set kubeletPlugin.args.v=4 \ --version="25.8.0" \ --create-namespace \ --namespace nvidia-dra-driver-gpu \ -f <(cat <<EOF nvidiaDriverRoot: /home/kubernetes/bin/nvidia resources: gpus: enabled: false controller: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: "nvidia.com/gpu" operator: "DoesNotExist" kubeletPlugin: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-accelerator operator: In values: - nvidia-gb300 - key: kubernetes.io/arch operator: In values: - arm64 tolerations: - key: nvidia.com/gpu operator: Equal value: present effect: NoSchedule - key: kubernetes.io/arch operator: Equal value: arm64 effect: NoSchedule EOF )
Arbeitslastmanifest für RDMA- und IMEX-Domain konfigurieren
Fügen Sie eine Knotenaffinitätsregel hinzu, um die Arbeitslast auf Arm-Knoten zu planen:
spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/arch operator: In values: - arm64Fügen Sie der Pod-Spezifikation das folgende Volume hinzu:
spec: volumes: - name: library-dir-host hostPath: path: /home/kubernetes/bin/nvidiaFügen Sie dem Container, der GPUs anfordert, die folgenden Volume-Bereitstellungen, die Umgebungsvariable und die Ressource hinzu. Ihr Arbeitslastcontainer muss alle vier GPUs anfordern:
containers: - name: my-container volumeMounts: - name: library-dir-host mountPath: /usr/local/nvidia env: - name: LD_LIBRARY_PATH value: /usr/local/nvidia/lib64 resources: limits: nvidia.com/gpu: 4Erstellen Sie die
ComputeDomain-Ressource für die Arbeitslast:apiVersion: resource.nvidia.com/v1beta1 kind: ComputeDomain metadata: name: a4x-max-compute-domain spec: numNodes: NUM_NODES channel: resourceClaimTemplate: name: a4x-max-compute-domain-channelErsetzen Sie
NUM_NODESdurch die Anzahl der Knoten, die für die Arbeitslast erforderlich sind.Erstellen Sie eine ResourceClaimTemplate, um Netzwerkressourcen mit DRANET zuzuweisen und RDMA-Geräte für Ihren Pod anzufordern:
apiVersion: resource.k8s.io/v1 kind: ResourceClaimTemplate metadata: name: all-mrdma spec: spec: devices: requests: - name: req-mrdma exactly: deviceClassName: mrdma.google.com allocationMode: ExactCount count: 8Geben Sie die ResourceClaimTemplate an, die der Pod verwendet:
spec: ... volumes: ... containers: - name: my-container ... resources: limits: nvidia.com/gpu: 4 claims: - name: compute-domain-channel - name: rdma ... resourceClaims: - name: compute-domain-channel resourceClaimTemplateName: a4x-max-compute-domain-channel - name: rdma resourceClaimTemplateName: all-mrdmaInstallieren Sie die neuesten Userspace-Bibliotheken in Ihrem Container-Image:
Debian 12+/Ubuntu 20.04+ (.deb-Paket)
apt update apt install curl # Fetch DOCA OFED userspace libraries export DOCA_URL="https://linux.mellanox.com/public/repo/doca/latest/ubuntu22.04/arm64-sbsa/" export BASE_URL="https://linux.mellanox.com/public/repo/doca" curl "${BASE_URL}/GPG-KEY-Mellanox.pub" | gpg --dearmor -o /etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub echo "deb [signed-by=/etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub] ${DOCA_URL} ./" | tee /etc/apt/sources.list.d/doca.list apt update apt install doca-ofed-userspace # Upgrade to latest NCCL for best compatibility apt install --only-upgrade --allow-change-held-packages libnccl2 libnccl-dev
Eine vollständige Pod-Spezifikation sieht so aus:
apiVersion: resource.nvidia.com/v1beta1
kind: ComputeDomain
metadata:
name: a4x-max-compute-domain
spec:
numNodes: NUM_NODES
channel:
resourceClaimTemplate:
name: a4x-max-compute-domain-channel
---
apiVersion: apps/v1
kind: Pod
metadata:
name: my-pod
labels:
k8s-app: my-pod
spec:
...
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- arm64
volumes:
- name: library-dir-host
hostPath:
path: /home/kubernetes/bin/nvidia
hostNetwork: true
containers:
- name: my-container
volumeMounts:
- name: library-dir-host
mountPath: /usr/local/nvidia
env:
- name: LD_LIBRARY_PATH
value: /usr/local/nvidia/lib64
resources:
limits:
nvidia.com/gpu: 4
claims:
- name: compute-domain-channel
- name: rdma
...
resourceClaims:
- name: compute-domain-channel
resourceClaimTemplateName: a4x-max-compute-domain-channel
- name: rdma
resourceClaimTemplateName: all-mrdma
Netzwerkleistung testen
Wir empfehlen, die Funktionalität der bereitgestellten Cluster zu prüfen. Verwenden Sie dazu NCCL-/gIB-Tests, die für die Google-Umgebung optimierte Tests der NVIDIA Collective Communications Library (NCCL) sind.
Weitere Informationen finden Sie unter NCCL auf benutzerdefinierten GKE-Clustern mit A4X Max ausführen.
Nächste Schritte
- Informationen zum Planen von Arbeitslasten auf Ihren GKE-Clustern mit TAS und Kueue finden Sie unter GKE-Arbeitslasten mit Topologie-abhängiger Planung planen.
- Informationen zum Verwalten häufiger Ereignisse, die für GKE Cluster und KI-Arbeitslasten relevant sind, finden Sie unter KI-optimierte GKE Cluster verwalten.