Benutzerdefinierten KI-optimierten GKE-Cluster mit N1 erstellen

In diesem Dokument wird beschrieben, wie Sie benutzerdefinierte Google Kubernetes Engine-Cluster (GKE-Cluster) erstellen, die die N1-Maschinenserie für allgemeine Zwecke mit angehängten NVIDIA T4- oder V100-GPUs verwenden, um Ihre Arbeitslasten für künstliche Intelligenz (KI) und maschinelles Lernen (ML) zu unterstützen. N1-Maschinen mit angehängten GPUs gelten als allgemeine GPUs, die unabhängige Rechenressourcen für gängige KI-Aufgaben wie Inferenz im kleinen bis mittleren Maßstab und grafikintensive Anwendungen bieten.

GKE bietet eine einheitliche Plattform, auf der Sie eine Vielzahl von Arbeitslasten für Ihr Unternehmen 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 N1-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, 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 update Befehl ab. Ältere gcloud CLI-Versionen unterstützen möglicherweise nicht die Ausführung der Befehle in diesem Dokument.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu 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 abrufen

  1. Wählen Sie eine Nutzungsoption aus. Treffen Sie Ihre Auswahl basierend darauf, wie Sie GPU-Ressourcen erhalten und verwenden möchten. Weitere Informationen finden Sie unter Nutzungsoption auswählen.

  2. Kapazität abrufen. Informationen zum Abrufen von Kapazität für Ihre Nutzungs option.

Voraussetzungen

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

Beschränkungen

Die folgenden Einschränkungen gelten für N1 als Maschinenserie für allgemeine GPUs:

  • GPU mit mehreren Instanzen (NVIDIA) : Die N1-Maschinenserie unterstützt keine GPUs mit mehreren Instanzen (NVIDIA).
  • NCCL Fast Socket: Sie können NCCL Fast Socket nicht mit N1-Maschinen in GKE verwenden. N1-Maschinen unterstützen zwar die Kommunikation zwischen mehreren Knoten, verwenden aber das Standard-VPC-Netzwerk. Für verteiltes Training im großen Maßstab, das einen maximalen Netzwerkdurchsatz erfordert, empfehlen wir die Verwendung einer Cluster-GPU Maschinenserie, wie A3 High oder A3 Mega (mit GPUDirect TCPX) oder A3 Ultra und A4 (mit GPUDirect RDMA).

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 den Cluster erstellt haben, können Sie einen Knotenpool mit N1-Maschinen mit angehängten T4- oder V100-GPUs hinzufügen.

    Verwenden Sie den folgenden Befehl, um einen Knotenpool zu erstellen:

    N1 mit angehängten T4-GPUs

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

    N1 mit angehängten V100-GPUs

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

    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. Dies ist bei der kompakten Platzierung erforderlich.
    • NODE_POOL_NAME: Der Name des Knotenpools.
    • MACHINE_TYPE: Der N1-Maschinentyp für Ihre Knoten, z. B. n1-standard-4.
    • AMOUNT: Die Anzahl der GPUs, die an jeden Knoten angehängt werden sollen.
    • LOCAL_SSD_COUNT: Die Anzahl der lokalen SSD-Volumes, die auf jedem Knoten bereitgestellt werden sollen.

Mit dem Cluster verbinden

Verbinden Sie sich mit Ihrem Cluster, 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 Knotenselektoren 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 verwenden möchten. Verwenden Sie nvidia-tesla-t4 für T4-GPUs oder nvidia-tesla-v100 für V100-GPUs.
    • RESERVATION_NAME: Der Name der Compute Engine-Kapazitätsreservierung. Informationen zum Verwenden freigegebener Reservierungen oder bestimmter Blöcke und Unterblöcke von Reservierungen finden Sie in den entsprechenden Abschnitten unter Reservierte zonale Ressourcen aufnehmen.
  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