Compute-Klassen für Autopilot-Pods auswählen


In diesem Dokument erfahren Sie, wie Sie bestimmte Compute-Klassen auswählen, um Arbeitslasten mit eindeutigen Hardwareanforderungen in Ihren Autopilot-Clustern (Google Kubernetes Engine) auszuführen. Machen Sie sich zuerst mit dem Konzept von Compute-Klassen in GKE Autopilot vertraut.

Übersicht über Autopilot-Compute-Klassen

Autopilot bietet Compute-Klassen, die für die Ausführung von Arbeitslasten mit bestimmten Hardwareanforderungen entwickelt wurden. Diese Compute-Klassen eignen sich für Arbeitslasten wie maschinelles Lernen und KI-Aufgaben oder zum Ausführen von Datenbanken mit hohem Traffic in Echtzeit.

Diese Compute-Klassen sind eine Teilmenge der Compute Engine-Maschinenreihe und bieten mehr Flexibilität als die Standard-Compute-Klasse für allgemeine Autopilot-Zwecke. Beispielsweise deaktiviert die Klasse Scale-Out das gleichzeitige Multi-Threading, sodass jede vCPU ein physischer Kern ist.

Je nach den Anforderungen Ihres einzelnen Pods können Sie Ihre regulären Autopilot-Pods oder Spot-Pods so konfigurieren, dass Knoten angefordert werden, die von diesen Compute-Klassen unterstützt werden. Sie können in Compute-Klassen, die diese Architektur unterstützen, auch bestimmte CPU-Architekturen wie Arm anfordern.

Vorbereitung

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.

Eine Compute-Klasse im Autopilot-Pod anfordern

Damit Autopilot Ihre Pods in einer bestimmten Compute-Klasse platzieren kann, geben Sie das Label cloud.google.com/compute-class in einemnodeSelector oder einer Knotenaffinitätsregel wie in den folgenden Beispielen an:

nodeSelector

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          nodeSelector:
            cloud.google.com/compute-class: "COMPUTE_CLASS"
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              requests:
                cpu: "2000m"
                memory: "2Gi"
    

Ersetzen Sie COMPUTE_CLASS durch den Namen der Compute-Klasse basierend auf Ihrem Anwendungsfall, z. B. Scale-Out. Wenn Sie Accelerator auswählen, müssen Sie auch eine kompatible GPU angeben. Eine Anleitung finden Sie unter GPU-Arbeitslasten in Autopilot bereitstellen. Wenn Sie Performance auswählen, müssen Sie in der Knotenauswahl auch eine Compute Engine-Maschinenserie auswählen. Eine Anleitung finden Sie unter CPU-intensive Arbeitslasten mit optimaler Leistung ausführen.

nodeAffinity

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello-app
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: hello-app
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          terminationGracePeriodSeconds: 25
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            resources:
              requests:
                cpu: "2000m"
                memory: "2Gi"
                ephemeral-storage: "1Gi"
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                nodeSelectorTerms:
                - matchExpressions:
                  - key: cloud.google.com/compute-class
                    operator: In
                    values:
                    - "COMPUTE_CLASS"
      

Ersetzen Sie COMPUTE_CLASS durch den Namen der Compute-Klasse entsprechend Ihrem Anwendungsfall, z. B. Scale-Out. Wenn Sie Accelerator auswählen, müssen Sie auch eine kompatible GPU angeben. Ein Anleitung finden Sie unter GPU-Arbeitslasten in Autopilot bereitstellen. Wenn Sie Performance auswählen, müssen Sie in der Knotenauswahl auch eine Compute Engine-Maschinenserie auswählen. Eine Anleitung finden Sie unter CPU-intensive Arbeitslasten mit optimaler Leistung ausführen.

Sie können auch bestimmte Compute-Klassen für Ihre Spot-Pods anfordern.

Ressourcenanforderungen angeben

Wenn Sie eine Compute-Klasse auswählen, müssen Sie Ressourcenanfragen für Ihre Pods auf Basis der Mindest- und Höchstwerte für Ressourcen für Ihre ausgewählte Klasse angeben. Wenn Ihre Anfragen unter dem Mindestwert liegen, skaliert Autopilot Ihre Anfragen automatisch vertikal. Wenn Ihre Anfragen jedoch größer als der Höchstwert sind, stellt Autopilot Ihre Pods nicht bereit und zeigt eine Fehlermeldung an.

CPU-Architektur auswählen

Einige Compute-Klassen unterstützen mehrere CPU-Architekturen. Die Klasse Scale-Out unterstützt beispielsweise sowohl Arm- als auch x86-Architekturen. Wenn Sie keine bestimmte Architektur anfordern, stellt Autopilot Knoten mit der Standardarchitektur der angegebenen Compute-Klasse bereit. Wenn Ihre Pods eine andere Architektur verwenden müssen, fordern Sie diese Architektur zusammen mit Ihrer Anfrage zur Compute-Klasse in Ihrer Knotenauswahl oder Knotenaffinitätsregel an. Die von Ihnen angeforderte Compute-Klasse muss die von Ihnen angegebene CPU-Architektur unterstützen.

Eine Anleitung finden Sie unter Autopilot-Pods in Arm-Architektur bereitstellen.

Nächste Schritte