CPU-intensive Arbeitslasten mit optimaler Leistung ausführen


Auf dieser Seite erfahren Sie, wie Sie die Leistung von CPU-intensiven Arbeitslasten optimieren, indem Sie Google Kubernetes Engine (GKE) anweisen, jeden Pod auf einem eigenen Knoten zu platzieren, mit vollständigem Zugriff auf alle Ressourcen des Knotens. Fordern Sie in Ihren Autopilot-Arbeitslasten die Computing-Klasse „Leistung” an, um dieses Pod-Platzierungsmodell zu verwenden.

Vorteile der Leistungscomputingklasse

Dedizierte Knoten pro Pod sind ideal, wenn Sie große CPU-intensive Arbeitslasten ausführen, die möglicherweise Zugriff auf Funktionen auf der zugrunde liegenden virtuellen Maschine (VM) benötigen. Beispiel: CPU-intensive KI/ML-Trainingsarbeitslasten oder Hochleistungs-Computing-Batcharbeitslasten (HPC).

Pods auf diesen dedizierten Knoten bieten folgende Vorteile:

  • Vorhersagbare Leistung: Der Zugriff auf alle Knotenressourcen ist jederzeit möglich.
  • Bursting-Arbeitslasten: Wenn Sie in Ihren Manifesten keine Ressourcenlimits festlegen, können Ihre Leistungsklassen-Pods alle nicht verwendeten Kapazitäten auf dem Knoten mit minimalem Risiko von Beendigung des Kubernetes-Knotendrucks steigern.

Funktionsweise von Pods der Leistungsklasse

Sie stellen einen Pod mit folgenden Eigenschaften bereit:

  • Wählt die Leistungsklasse und eine Compute Engine-Maschinenserie aus
  • Gibt Ressourcenanforderungen an und idealerweise keine Ressourcenlimits

GKE führt Folgendes aus:

  • Sorgt dafür, dass der bereitgestellte Pod mindestens die Mindestressourcen für die Compute-Klasse anfordert
  • Berechnet die Gesamtzahl der Ressourcenanforderungen des bereitgestellten Pods und aller DaemonSets im Cluster
  • Stellt einen Knoten bereit, der von der ausgewählten Maschinenserie unterstützt wird
  • Ändert das Pod-Manifest mit einer Kombination aus Knotenselektoren und Toleranzen, damit der Pod auf einem eigenen Knoten ausgeführt wird.

Kompatibilität mit anderen GKE-Features

Sie können Pods der Leistungsklasse mit den folgenden GKE-Funktionen und -Features verwenden:

Spot-Pods und erweiterte Laufzeit-Pods schließen sich gegenseitig aus. GKE erzwingt keine höheren Mindestressourcenanforderungen für Leistungsklassen-Pods, die die Arbeitslasttrennung verwenden.

Preise

Ihr Pod kann jederzeit die gesamte zugrunde liegende VM und die gesamte angehängte Hardware nutzen. Diese Hardware wird von Compute Engine mit einem Aufpreis für die Verwaltung und Skalierbarkeit von Autopilot-Knoten in Rechnung gestellt. Weitere Informationen finden Sie unter GKE-Preise.

Hinweise

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 gcloud components update ab.

Mit dem Cluster verbinden

Verwenden Sie die Google Cloud CLI, um eine Verbindung zu Ihrem Autopilot-Cluster herzustellen:

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=LOCATION

Ersetzen Sie Folgendes:

Pod der Leistungsklasse bereitstellen

  1. Speichern Sie das folgende Manifest als perf-class-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: performance-pod
    spec:
      nodeSelector:
        cloud.google.com/compute-class: Performance
        cloud.google.com/machine-family: MACHINE_SERIES
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 20
            memory: "100Gi"
    

    Ersetzen Sie MACHINE_SERIES durch die Compute Engine-Maschinenreihe für Ihren Pod, z. B. c3. Die unterstützten Werte finden Sie in diesem Dokument unter Unterstützte Maschinenserien.

  2. Stellen Sie den Pod bereit:

    kubectl apply -f perf-class-pod.yaml
    

Lokale SSDs in Leistungsklassen-Pods verwenden

Pods der Leistungsklasse können lokale SSDs für sitzungsspezifischen Speicher verwenden, wenn Sie eine Maschinenserie mit einer lokalen SSD auswählen. GKE berücksichtigt sitzungsspezifische Speicheranfragen bei der Bereitstellung eines Knotens für den Pod der Leistungsklasse.

  1. Speichern Sie das folgende Manifest als perf-class-ssd-pod.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: performance-pod
    spec:
      nodeSelector:
        cloud.google.com/compute-class: Performance
        cloud.google.com/machine-family: MACHINE_SERIES
        cloud.google.com/gke-ephemeral-storage-local-ssd: "true"
      containers:
      - name: my-container
        image: "k8s.gcr.io/pause"
        resources:
          requests:
            cpu: 12
            memory: "50Gi"
            ephemeral: "200Gi"
    

    Ersetzen Sie MACHINE_SERIES durch eine unterstützte Maschinenserie, die auch lokale SSDs unterstützt. Wenn die angegebene Maschinenserie keine lokalen SSDs unterstützt, schlägt die Bereitstellung mit einem Fehler fehl.

  2. Stellen Sie den Pod bereit:

    kubectl apply -f perf-class-pod.yaml
    

Unterstützte Maschinenserien

Die Computingklasse "Leistung" unterstützt die folgende Maschinenserien:

Maschinenserie Lokale SSD-Auswahl in Autopilot
C3-Maschinenserie (c3)
C3D-Maschinenserie (c3d)
H3-Maschinenserie (h3)
C2-Maschinenserie (c2)
C2D-Maschinenserie (c2d)
T2D-Maschinenserie (t2d)
T2A-Maschinenserie (t2a)

Einen Vergleich dieser Maschinenserien und ihrer Anwendungsfälle finden Sie unter Maschinenserienvergleich in der Compute Engine-Dokumentation.

So wählt GKE eine Maschinengröße aus

Um eine Maschinengröße zur angegebenen Maschinenserie auszuwählen, berechnet GKE die Gesamt-CPU, den Gesamtarbeitsspeicher und die gesamten Anfragen zu flüchtigem Speicher des Pods der Leistungsklasse und aller DaemonSets, die auf dem neuen Knoten ausgeführt werden. GKE rundet diese Werte auf den nächsten verfügbaren Compute Engine-Maschinentyp auf, der alle diese Summen unterstützt.

  • Beispiel 1: Betrachten Sie einen Pod der Leistungsklasse, der die Maschinenserie C3 auswählt. Die Gesamtzahl der Ressourcenanfragen einschließlich DaemonSets sieht so aus:

    • 70 vCPU
    • 200 GiB Arbeitsspeicher

    GKE platziert den Pod auf einem Knoten, der vom Maschinentyp c3-standard-88 unterstützt wird, der 88 vCPUs und 352 GB Arbeitsspeicher hat.

  • Beispiel 2: Betrachten Sie einen Pod der Leistungsklasse, der die Maschinenserie C3D und lokale SSDs für sitzungsspezifischen Speicher auswählt. Die gesamten Ressourcenanfragen, einschließlich DaemonSets, lauten so:

    • 12 vCPU
    • 50 GiB Arbeitsspeicher
    • 200 GiB sitzungsspezifischer Speicher

    GKE platziert den Pod auf einem Knoten mit dem Maschinentyp c3d-standard-16-lssd, der 16 vCPUs, 64 GiB Arbeitsspeicher und 365 GiB lokale SSD-Kapazität hat.

Nächste Schritte