Sie können die Balanced- und Scale-Out- ComputeClasses in Google Kubernetes Engine-Clustern (GKE) im Autopilot-Modus verwenden, um Arbeitslasten auszuführen, die zusätzliche Rechenkapazität oder spezielle CPU-Konfigurationen erfordern. Diese Seite richtet sich an Clusteradministratoren, die flexiblere Compute-Optionen als die Standardkonfiguration von Autopilot-Clustern benötigen.
Übersicht über die ComputeClasses „Balanced“ und „Scale-Out“
Standardmäßig werden Pods in GKE-Clustern im Autopilot-Modus auf einer containeroptimierten Computing-Plattform ausgeführt. Diese Plattform ist ideal für Arbeitslasten für allgemeine Zwecke wie Webserver und Batchjobs mit mittlerer Intensität. Die containeroptimierte Computing-Plattform bietet eine zuverlässige, skalierbare und kostenoptimierte Hardwarekonfiguration, die die Anforderungen der meisten Arbeitslasten bewältigen kann.
Wenn Sie Arbeitslasten mit besonderen Hardwareanforderungen haben (z. B. maschinelles Lernen oder KI-Aufgaben ausführen, Datenbanken mit hohem Traffic in Echtzeit ausführen oder bestimmte CPU-Plattformen und -Architekturen benötigen), können Sie ComputeClasses verwenden, um diese Hardware bereitzustellen.
Nur in Autopilot-Clustern bietet GKE die folgenden kuratierten ComputeClasses, mit denen Sie Pods ausführen können, die mehr Flexibilität als die standardmäßige containeroptimierte Computing-Plattform benötigen:
Balanced: bietet eine höhere maximale CPU- und Arbeitsspeicherkapazität als die containeroptimierte Computing-Plattform.Scale-Out: deaktiviert das gleichzeitige Multi-Threading (SMT) und ist für die horizontale Skalierung optimiert.
Diese ComputeClasses sind nur in Autopilot-Clustern verfügbar. Ähnlich wie bei der standardmäßigen containeroptimierten Computing-Plattform verwaltet Autopilot die Knotengröße und Ressourcenzuweisung basierend auf den ausgeführten Pods.
Benutzerdefinierte ComputeClasses für zusätzliche Flexibilität
Wenn die ComputeClasses „Balanced“ oder „Scale-Out“ in Autopilot-Clustern
die Anforderungen Ihrer Arbeitslasten nicht erfüllen, können Sie
eigene ComputeClasses konfigurieren.
Sie stellen benutzerdefinierte ComputeClass-Kubernetes-Ressourcen in Ihren Clustern mit Knoteneigenschaften bereit, die GKE zum Konfigurieren neuer Knoten im Cluster verwendet. Mit diesen benutzerdefinierten ComputeClasses können Sie beispielsweise Arbeitslasten auf derselben Hardware wie die ComputeClasses Balanced oder Scale-Out in jedem GKE-Cluster im Autopilot- oder Standardmodus bereitstellen. Weitere Informationen finden Sie unter
Arbeitslasten im Autopilot-Modus in GKE Standard.
Preise
Pods, die die ComputeClasses Balanced oder Scale-Out verwenden, werden anhand der folgenden SKUs abgerechnet:
Weitere Informationen finden Sie unter GKE-Preise.
Technische Details zu „Balanced“ und „Scale-Out“
In diesem Abschnitt werden die Maschinentypen und Anwendungsfälle für die Klassen Balanced und Scale-Out beschrieben. Wenn Sie in Ihren Pods keine ComputeClass anfordern, platziert Autopilot die Pods standardmäßig auf der containeroptimierten Computing-Plattform. Manchmal wird in Ihren Autopilot-Knoten, die die containeroptimierte Computing-Plattform verwenden, ek als Maschinenserie des Knotens angezeigt. EK-Maschinen sind E2-Maschinentypen, die nur in Autopilot verfügbar sind.
Die folgende Tabelle bietet einen technischen Überblick über die ComputeClasses Balanced und Scale-Out.
| ComputeClasses „Balanced“ und „Scale-Out“ | ||
|---|---|---|
Balanced |
Bietet mehr CPU- und Arbeitsspeicherkapazität als die containeroptimierte Computing-Plattform. Bietet zusätzliche CPU-Plattformen und die Möglichkeit, Mindest-CPU-Plattformen für Pods festzulegen, z. B. Intel Ice Lake oder höher.
Verwenden Sie die
|
|
Scale-Out |
Bietet Single-Thread-pro-Core-Computing und horizontale Skalierung.
Verwenden Sie die
|
|
ComputeClass-Auswahl in Arbeitslasten
Wenn Sie eine ComputeClass für eine GKE-Arbeitslast verwenden möchten, wählen Sie die
ComputeClass im Arbeitslastmanifest mit einer
Knotenauswahl
für das cloud.google.com/compute-class Label aus.
Im folgenden Beispielmanifest für ein Deployment wird eine ComputeClass ausgewählt:
Ersetzen Sie COMPUTE_CLASS durch den Namen einer ComputeClass, z. B. Balanced oder Scale-Out. Sie können in einer Arbeitslast maximal eine ComputeClass auswählen.
Wenn Sie die Arbeitslast bereitstellen, führt GKE Folgendes aus:
- Stellt automatisch Knoten bereit, die von der angegebenen Konfiguration unterstützt werden, um Ihre Pods auszuführen.
- Fügt den neuen Knoten automatisch Knotenlabels und Markierungen hinzu, um zu verhindern, dass andere Pods auf diesen Knoten geplant werden. Die Markierungen sind für jede ComputeClass eindeutig. Wenn Sie auch eine CPU-Architektur auswählen, fügt GKE eine separate Markierung hinzu, die für diese Architektur eindeutig ist.
- Fügt den bereitgestellten Pods automatisch Toleranzen hinzu, die den angewendeten Markierungen entsprechen, sodass GKE diese Pods auf den neuen Knoten platzieren kann.
Wenn Sie beispielsweise die ComputeClass Scale-Out für einen Pod anfordern:
- Autopilot fügt für diese Knoten eine Markierung hinzu, die für
Scale-Outspezifisch ist. - Autopilot fügt den
Scale-Out-Pods eine Toleranz für diese Markierung hinzu.
Pods, die nicht Scale-Out anfordern, erhalten keine Toleranz. Daher plant GKE diese Pods nicht auf den Scale-Out-Knoten.
Wenn Sie in der Arbeitslastspezifikation nicht explizit eine ComputeClass anfordern, plant Autopilot Pods auf Knoten, die die standardmäßige containeroptimierte Computing-Plattform verwenden. Die meisten Arbeitslasten für allgemeine Zwecke können ohne Probleme auf dieser Plattform ausgeführt werden.
CPU-Architektur anfordern
In einigen Fällen können Ihre Arbeitslasten für eine bestimmte Architektur wie Arm erstellt werden. Die ComputeClass „Scale-Out“ unterstützt mehrere CPU-Architekturen. Sie können neben einer ComputeClass auch eine bestimmte Architektur anfordern. Geben Sie dazu ein Label in Ihrer Knotenauswahl oder Knotenaffinitätsregel an, wie im folgenden Beispiel gezeigt:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-arm
spec:
replicas: 3
selector:
matchLabels:
app: nginx-arm
template:
metadata:
labels:
app: nginx-arm
spec:
nodeSelector:
cloud.google.com/compute-class: COMPUTE_CLASS
kubernetes.io/arch: ARCHITECTURE
containers:
- name: nginx-arm
image: nginx
resources:
requests:
cpu: 2000m
memory: 2Gi
Ersetzen Sie ARCHITECTURE durch die gewünschte CPU-Architektur, z. B. arm64 oder amd64. Sie können in Ihrer Arbeitslast maximal eine Architektur auswählen. Die von Ihnen ausgewählte ComputeClass muss die von Ihnen angegebene Architektur unterstützen.
Wenn Sie nicht explizit eine Architektur anfordern, verwendet Autopilot die Standardarchitektur der ComputeClass.
Arm-Architektur auf Autopilot
Autopilot unterstützt Anfragen für Knoten, die die ARM-CPU-Architektur verwenden. ARM-Knoten sind kostengünstiger als ähnliche x86-Knoten und bieten gleichzeitig Leistungsverbesserungen. Eine Anleitung zum Anfordern von ARM-Knoten finden Sie unter Autopilot-Arbeitslasten in der ARM-Architektur bereitstellen.
Prüfen Sie, ob Sie in Ihren Bereitstellungen die richtigen Images verwenden. Wenn Ihre Pods ARM-Images verwenden und Sie keine ARM-Knoten anfordern, plant Autopilot die Pods auf x86-Knoten und die Pods abstürzen. Ähnlich verhält es sich, wenn Sie versehentlich x86-Images verwenden, aber ARM-Knoten für die Pods anfordern, die dann zum Absturz der Pods führen.
Standard-, Mindest- und Höchstwerte für Ressourcenanfragen
Wenn Sie eine ComputeClass für Ihre Autopilot-Arbeitslasten auswählen, müssen Sie Ressourcenanfragen angeben, die die Mindest- und Höchstwerte für diese ComputeClass erfüllen. Informationen zu den Standardanfragen sowie zu den Mindest- und Höchstwerten für jede ComputeClass finden Sie unter Ressourcenanfragen und -limits in GKE Autopilot.
Nächste Schritte
- Best Practices für ComputeClasses
- Bestimmte ComputeClasses in den Autopilot Arbeitslasten auswählen
- Informationen zu den Standard-, Mindest- und Höchstwerten für Ressourcen pro Plattform.