KI-optimierten GKE-Cluster mit A2 erstellen

In diesem Dokument wird beschrieben, wie Sie benutzerdefinierte Google Kubernetes Engine-Cluster (GKE) erstellen, die die für Beschleuniger optimierten Maschinentypen A2 Standard (A100 40 GB) oder A2 Ultra (A100 80 GB) verwenden, um Ihre Arbeitslasten für künstliche Intelligenz (KI) und maschinelles Lernen (ML) zu unterstützen. A2 ist eine allgemeine GPU-Maschinenserie, die unabhängige Rechenressourcen für gängige KI-Aufgaben wie das Training kleinerer Modelle und die Inferenz auf einem einzelnen Host bietet.

GKE bietet eine einheitliche Plattform, auf der Sie eine Vielzahl von Arbeitslasten für Ihre Organisation ausführen können. So wird der Betriebsaufwand für die Verwaltung mehrerer Plattformen reduziert.

So erstellen Sie einen KI-optimierten GKE-Cluster, der die A2-Maschinenserie verwendet:

  1. GKE-Umgebung erstellen
  2. Mit dem Cluster verbinden
  3. Pod-Manifeste konfigurieren

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, 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 update ab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen und Verwalten eines GKE-Cluster benötigen:

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.

Nutzungsoption auswählen und Kapazität erhalten

  1. Wählen Sie eine Option für die Nutzung aus. Treffen Sie Ihre Auswahl basierend darauf, wie Sie GPU-Ressourcen erhalten und verwenden möchten. Weitere Informationen finden Sie unter Verbrauchsoption auswählen.

    Berücksichtigen Sie für GKE die folgenden zusätzlichen Informationen, wenn Sie eine Verbrauchsoption auswählen:

  2. Kapazität erhalten: Kapazität für Ihre Verbrauchsoption abrufen

Voraussetzungen

Für einen KI-optimierten GKE-Cluster, der A2-Maschinen verwendet, müssen Ihre GPU-Knoten die NVIDIA-Treiberversion 450.80.02 oder höher verwenden.

Beschränkungen

Für A2-Maschinen als Allgemeine GPU gelten die folgenden Einschränkungen:

  • GPU mit mehreren Instanzen:Obwohl A2-Instanzen (A100-GPUs) Hardwarepartitionierung unterstützen, wird die GPU mit mehreren Instanzen (NVIDIA) bei Verwendung von GKE Autopilot nicht unterstützt. Für Arbeitslasten, die eine A100-GPU-Partitionierung erfordern, müssen Sie GKE Standard verwenden.

GKE-Umgebung erstellen

Sie können einen Cluster im Autopilot- oder Standardmodus erstellen.

Autopilot

Führen Sie den folgenden Befehl aus, um einen Autopilot-Cluster zu erstellen:

  gcloud container clusters create-auto CLUSTER_NAME \
      --region=REGION

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Clusters.
  • REGION: Die Region für Ihren Cluster.

Standard

Erstellen Sie einen Standardcluster und einen GPU-Knotenpool:

  1. Führen Sie den folgenden Befehl aus, um einen Standardcluster zu erstellen:

    gcloud container clusters create CLUSTER_NAME \
        --region=REGION \
        --enable-ip-alias
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: Der Name Ihres Clusters.
    • REGION: Die Region für Ihren Cluster.
  2. Erstellen Sie den Knotenpool. Nachdem Sie Ihren Cluster erstellt haben, können Sie einen Knotenpool mit A2-GPUs hinzufügen.

    Wichtige Hinweise:

    • Bei A2-Standard-Maschinentypen (a2-highgpu) müssen Sie lokale SSD-Laufwerke manuell an Ihre Knoten anhängen, um sie für Scratch-Space oder Caching zu verwenden. Verwenden Sie das Flag --local-ssd-count.
    • A2-Ultra-Maschinentypen (a2-ultragpu) enthalten standardmäßig automatisch eine feste Anzahl lokaler SSD-Laufwerke.
    • Für Trainingsarbeitslasten mit mehreren Knoten empfehlen wir die Verwendung einer kompakten Platzierungsrichtlinie, um die Netzwerklatenz zwischen Knoten zu minimieren.
    • Für Trainingsarbeitslasten mit mehreren Knoten empfehlen wir außerdem, NCCL Fast Socket zu aktivieren, um die Netzwerkleistung zu verbessern.

    A2 Standard (A100 40 GB)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-tesla-a100,count=AMOUNT,gpu-driver-version=LATEST \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform" \
        --local-ssd-count=LOCAL_SSD_COUNT
    

    A2 Ultra (A100 80 GB)

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --node-locations=ZONE \
        --machine-type=MACHINE_TYPE \
        --accelerator=type=nvidia-a100-80gb,count=AMOUNT,gpu-driver-version=LATEST \
        --placement-type=COMPACT \
        --scopes="https://www.googleapis.com/auth/cloud-platform"
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: Der Name Ihres Clusters.
    • REGION: Die Region für Ihren Cluster.
    • ZONE: Eine oder mehrere Zonen in Ihrer Region, in denen die angeforderten GPUs verfügbar sind, z. B. us-central1-a. Das ist bei der kompakten Platzierung erforderlich.
    • NODE_POOL_NAME: Der Name des Knotenpools.
    • MACHINE_TYPE: der Maschinentyp für Ihre Knoten, z. B. a2-highgpu-1g.
    • AMOUNT: Die Anzahl der GPUs, die an jeden Knoten angehängt werden sollen.
    • LOCAL_SSD_COUNT ist die Anzahl der lokalen SSD-Volumes, die auf jedem Knoten bereitgestellt werden sollen.

Mit dem Cluster verbinden

Stellen Sie eine Verbindung zu Ihrem Cluster her, damit Sie die kubectl-Befehle in den nächsten Abschnitten ausführen können:

gcloud container clusters get-credentials CLUSTER_NAME \
    --region=REGION

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Clusters.
  • REGION: Die Region für Ihren Cluster.

Weitere Informationen finden Sie unter kubectl installieren und Clusterzugriff konfigurieren.

Pod-Manifest konfigurieren (nur Autopilot)

Wenn Sie einen Autopilot-Cluster erstellt haben, müssen Sie die entsprechenden GPUs in Ihren Pod-Manifesten auswählen, damit GKE die Hardware bereitstellt.

  1. Geben Sie den ausgewählten GPU-Typ und die spezifische Reservierung mit Knotenauswahlen an:

    spec:
      nodeSelector:
        cloud.google.com/gke-accelerator: ACCELERATOR
        cloud.google.com/gke-gpu-driver-version: latest
        # Optional: Include if using reserved capacity
        cloud.google.com/reservation-name: RESERVATION_NAME
        cloud.google.com/reservation-affinity: "specific"
    

    Ersetzen Sie Folgendes:

    • ACCELERATOR: der Beschleuniger, den Sie reserviert haben. Sie müssen nvidia-tesla-a100 (für A2-Standard) oder nvidia-a100-80gb (für A2-Ultra) verwenden.
    • RESERVATION_NAME: Der Name der Compute Engine-Kapazitätsreservierung. Informationen zum Nutzen freigegebener Reservierungen oder bestimmter Blöcke und Unterblöcke von Reservierungen finden Sie in den entsprechenden Abschnitten unter Reservierte zonale Pfadressourcen nutzen.
  2. Fügen Sie dem Container, der GPUs anfordert, die folgenden Ressourcen hinzu:

    containers:
      - name: my-container
        resources:
          limits:
            nvidia.com/gpu: AMOUNT
    

    Ersetzen Sie AMOUNT durch die Anzahl der GPUs, die an jeden Knoten angehängt werden sollen.

Nächste Schritte