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.
- Prüfen Sie, ob Sie einen GKE Autopilot-Cluster haben, auf dem GKE Version 1.24.1-gke.1400 oder höher ausgeführt wird.
Eine Compute-Klasse im Autopilot-Pod anfordern
Damit Autopilot Ihre Pods in einer bestimmten Compute-Klasse platzieren kann, geben Sie das Labelcloud.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
- Weitere Informationen zur Autopilot-Clusterarchitektur
- Lebenszyklus von Pods
- Informationen zu den verfügbaren Autopilot-Compute-Klassen
- Informationen zu den Standard-, Mindest- und Höchstwerten für Ressourcen pro Plattform