In diesem Dokument wird beschrieben, wie Sie einen KI-optimierten Google Kubernetes Engine-Cluster (GKE) erstellen, in dem A4X Max Compute Engine-Instanzen verwendet werden, um Ihre KI- und ML-Arbeitslasten zu unterstützen.
Mit der A4X Max- und A4X-Serie können Sie groß angelegte KI-/ML-Cluster mit dem NVIDIA Multi-Node NVLink (MNNVL)-System ausführen, einer Lösung im Rack-Maßstab, die eine höhere GPU-Leistung ermöglicht. Diese Maschinen bieten Funktionen wie die gezielte Platzierung von Arbeitslasten, Topology Aware Scheduling und erweiterte Steuerelemente für die Clusterwartung. Weitere Informationen finden Sie unter Funktionen für die Clusterverwaltung. Mit A4X Max bietet GKE auch eine automatische Netzwerkeinrichtung, die die Clusterkonfiguration vereinfacht.
KI- und ML-Arbeitslasten wie verteiltes Training erfordern eine leistungsstarke Beschleunigung, um die Leistung zu optimieren, indem die Ausführungszeiten von Jobs verkürzt werden. GKE bietet eine einzige Plattform, auf der Sie eine Vielzahl von Arbeitslasten für Ihre Organisationen ausführen können. So wird der Betriebsaufwand für die Verwaltung mehrerer Plattformen reduziert. Sie können Arbeitslasten wie verteiltes Vortraining mit hoher Leistung, Modellabstimmung, Modellinferenz, Anwendungsbereitstellung und unterstützende Dienste ausführen. Bei Arbeitslasten, die hohe Leistung, hohen Durchsatz und niedrige Latenz erfordern, reduziert GPUDirect RDMA die Netzwerk-Hops, die für die Übertragung von Nutzlasten an und von GPUs erforderlich sind. Bei diesem Ansatz wird die verfügbare Netzwerkbandbreite effizienter genutzt. Weitere Informationen finden Sie unter GPU-Netzwerkstacks.
In diesem Dokument erfahren Sie, wie Sie einen GKE-Cluster mit der Google Cloud CLI erstellen, um Ihren Cluster basierend auf den Anforderungen Ihrer Arbeitslast maximal flexibel zu konfigurieren. Wenn Sie mit der gcloud CLI Cluster mit anderen Maschinentypen erstellen möchten, lesen Sie die folgenden Informationen:
- A4X: Erstellen Sie einen benutzerdefinierten KI-optimierten GKE-Cluster, der A4X verwendet.
- A4 oder A3 Ultra: Informationen zum Erstellen eines Clusters, der A4 oder A3 Ultra verwendet, finden Sie unter Benutzerdefinierten KI-optimierten GKE-Cluster erstellen, der A4 oder A3 Ultra verwendet. Sie können diese Maschinenserien zum Ausführen von Arbeitslasten mit oder ohne GPUDirect RDMA verwenden.
Alternativ können Sie Cluster Toolkit verwenden, um Ihren Cluster schnell mit Standardeinstellungen bereitzustellen, die Best Practices für viele Anwendungsfälle entsprechen. 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 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.
Kapazität erhalten
Sie können Kapazität für A4X Max-Compute-Instanzen erhalten, indem Sie eine zukünftige 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 Abrufen von Kapazität mit einer vorausschauenden Reservierung finden Sie in der Tabelle unter Kapazität abrufen in der Zeile Vorausschauende Reservierungen in AI Hypercomputer.
Voraussetzungen
Für einen KI-optimierten GKE-Cluster mit A4X Max-Compute-Instanzen gelten die folgenden Anforderungen:
Für A4X Max müssen Sie eine der folgenden Versionen verwenden:
- Für Version 1.35 oder höher verwenden Sie die GKE-Version 1.35.0-gke.2745000 oder höher.
- Für Version 1.34 verwenden Sie die GKE-Version 1.34.3-gke.1318000 oder höher.
Diese Versionen sorgen dafür, dass A4X Max Folgendes verwendet:
- R580.95.05, die Mindestversion des GPU-Treibers für A4X Max, die standardmäßig aktiviert ist.
- Coherent Driver-based Memory Management (CDMM), das standardmäßig aktiviert ist. NVIDIA empfiehlt, diesen Modus in Kubernetes-Clustern zu aktivieren, um eine Übermeldung des Arbeitsspeichers zu vermeiden. Mit CDMM kann der GPU-Speicher über den Treiber anstelle des Betriebssystems verwaltet werden. So wird vermieden, 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. GPUs mit mehreren Instanzen werden nicht unterstützt, wenn CDMM aktiviert ist. Weitere Informationen zu CDMM finden Sie unter Hardware- und Softwareunterstützung.
- 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-Knotenimages werden nicht unterstützt.
Ihre GKE-Arbeitslast muss alle verfügbaren GPUs und Ihr Pod 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 Bereitstellungsmodell reservation-bound verwenden, um Cluster mit A4X Max zu erstellen. Andere Bereitstellungsmodelle 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 Maschinentyp
a4x-maxgpu-4g-metalnicht unterstützt.
Hinweise zum Erstellen eines Clusters
Beachten Sie beim Erstellen eines Clusters Folgendes:
- Clusterstandort auswählen:
- Prüfen Sie, ob der von Ihnen ausgewählte Maschinentyp am von Ihnen verwendeten Standort 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 Flag
--node-locationsdie 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: Automatische Treiberinstallation überspringen. Sie müssen einen Treiber manuell 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:
- Hier finden Sie Informationen zu Ihrer Reservierung, z. B. den Namen Ihrer Reservierung oder den Namen eines bestimmten Blocks in Ihrer Reservierung. Weitere Informationen zum Abrufen dieser Werte
- Das Flag
--reservation-affinitykann die Wertespecificoderanyhaben. 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: Projekt-ID in Google Cloud .RESERVATION_NAME: Der Name Ihrer Reservierung.BLOCK_NAME: der Name eines bestimmten Blocks innerhalb der Reservierung.
Wir empfehlen außerdem, eine reservierte Zuweisung für einen Unterblock zu verwenden, damit Compute-Instanzen in einem einzelnen Unterblock innerhalb des
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 erstellen, der A4X Max und GPUDirect RDMA verwendet
Bei verteilten 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 Rack-Scale-Architektur NVIDIA GB300 NVL72 basiert. A4X Max-Compute-Instanzen verwenden eine mehrschichtige, hierarchische Netzwerkarchitektur mit einem schienenorientierten 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 für KI-Arbeitslasten. Weitere Informationen zur Netzwerkarchitektur für A4X Max, einschließlich der Netzwerkbandbreite und der Anordnung der NICs, finden Sie unter A4X Max-Maschinentyp (Bare Metal).
So erstellen Sie einen GKE-Standardcluster mit A4X Max, 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 Beschleunigernetzwerkprofile 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
GKE-Standardcluster erstellen:
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_VERSIONist 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 mit Subnetzbereichen für zusätzliche Knotennetzwerke überschneiden. Beispiel:
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, bei der das Feld accelerator_topology auf 1x72 festgelegt 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 Arbeitslastrichtlinie.PROJECT: Name Ihres ProjektsCOMPUTE_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.yamlA4X Max-Knotenpool erstellen:
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 des Knotenpools.NODE_COUNT: Die Anzahl der Knoten für den Knotenpool, die maximal 18 betragen darf. Wir empfehlen, 18 Knoten zu verwenden, um die GPU-Topologie von1x72in einem Subblock mit einer NVLink-Domain zu erhalten.WORKLOAD_POLICY_NAME: Der Name der Workload-Richtlinie, die Sie zuvor erstellt haben.RESERVATION_NAME: der Name Ihrer Reservierung. Informationen zum Ermitteln dieses Werts finden Sie unter Zukünftige Reservierungsanfragen ansehen.BLOCK_NAME: der Name eines bestimmten Blocks innerhalb der Reservierung. Informationen zum Ermitteln dieses Werts finden Sie unter Zukünftige Reservierungsanfragen ansehen.
Mit diesem Befehl wird automatisch ein Netzwerk erstellt, das alle A4X Max-Knoten in einer einzelnen Zone über das 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 aufnehmen.
Konfigurieren Sie die MRDMA-NICs mit asapd-lite.
Das DaemonSet asapd-lite 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 der Anzahl der Knoten entsprechen, 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 der Cloud Shell vorinstalliert.
Es gibt keine spezielle Helm-Versionsanforderung. Sie können jedoch mit dem folgenden Befehl prüfen, ob Helm installiert ist.
helm versionWenn die Ausgabe in etwa so aussieht:
Command helm not found, 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 festlegen.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 Einbindungen, Umgebungsvariablen und Ressourcen hinzu. Der 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 Ressource
ComputeDomainfü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 ein 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-mrdmaPrüfen Sie, ob die Userspace-Bibliotheken und die libnccl-Pakete im Nutzer-Container-Image installiert sind:
apt update -y apt install -y curl export DOCA_URL="https://linux.mellanox.com/public/repo/doca/3.1.0/ubuntu22.04/arm64-sbsa/" BASE_URL=$([ "${DOCA_PREPUBLISH:-false}" = "true" ] && echo https://doca-repo-prod.nvidia.com/public/repo/doca || echo https://linux.mellanox.com/public/repo/doca) DOCA_SUFFIX=${DOCA_URL#*public/repo/doca/}; DOCA_URL="$BASE_URL/$DOCA_SUFFIX" curl $BASE_URL/GPG-KEY-Mellanox.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub echo "deb [signed-by=/etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub] $DOCA_URL ./" > /etc/apt/sources.list.d/doca.list apt update apt -y install doca-ofed-userspace # The installed libnccl2 is 2.27.7, to upgrade to 2.28.9 as we recommend apt install --only-upgrade --allow-change-held-packages -y libnccl2 libnccl-dev
Eine ausgefüllte 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 bereitgestellter Cluster zu prüfen. Verwenden Sie dazu NCCL-/gIB-Tests, die NVIDIA Collective Communications Library (NCCL)-Tests sind, die für die Google-Umgebung optimiert wurden.
Weitere Informationen finden Sie unter NCCL in benutzerdefinierten GKE-Clustern mit A4X Max ausführen.
Nächste Schritte
- Informationen zum Planen von Arbeitslasten in Ihren GKE-Clustern mit TAS und Kueue finden Sie unter GKE-Arbeitslasten mit Topology Aware Scheduling 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.