Sie können die Compute-Klassen Balanced
und Scale-Out
in Google Kubernetes Engine (GKE) Autopilot-Clustern 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 Compute-Klassen „Balanced“ und „Scale-Out“
Standardmäßig werden Pods in GKE Autopilot-Clustern auf einer containeroptimierten Computing-Plattform ausgeführt. Diese Plattform ist ideal für allgemeine Arbeitslasten 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 Compute-Klassen, mit denen Sie Pods ausführen können, die mehr Flexibilität als die standardmäßige containeroptimierte Compute-Plattform benötigen:
Balanced
: bietet eine höhere maximale CPU- und Speicherkapazität als die containeroptimierte Compute-Plattform.Scale-Out
: Deaktiviert das gleichzeitige Multi-Threading (SMT) und ist für die horizontale Skalierung optimiert.
Diese Compute-Klassen sind nur in Autopilot-Clustern verfügbar. Ähnlich wie bei der standardmäßigen containeroptimierten Compute-Plattform verwaltet Autopilot die Knotengröße und Ressourcenzuweisung basierend auf den ausgeführten Pods.
Benutzerdefinierte Compute-Klassen für zusätzliche Flexibilität
Wenn die Compute-Klassen „Balanced“ oder „Scale-Out“ in Autopilot-Clustern nicht den Anforderungen Ihrer Arbeitslast entsprechen, können Sie eigene Compute-Klassen konfigurieren.
Sie stellen ComputeClass-Kubernetes-Ressourcen in Ihren Clustern mit Gruppen von Knotenattributen bereit, die GKE zum Konfigurieren neuer Knoten im Cluster verwendet. Mit diesen benutzerdefinierten Compute-Klassen können Sie beispielsweise Arbeitslasten auf derselben Hardware wie die Compute-Klassen Balanced
oder Scale-Out
in einem beliebigen GKE Autopilot- oder Standardcluster 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 Compute-Plattform. Manchmal wird ek
als Knotenmaschinenserie für Ihre Autopilot-Knoten angezeigt, die die containeroptimierte Compute-Plattform verwenden. EK-Maschinen sind E2-Maschinentypen, die ausschließlich für Autopilot verfügbar sind.
Die folgende Tabelle bietet einen technischen Überblick über die ComputeClasses Balanced
und Scale-Out
.
Ausgewogene und Scale-Out-ComputeClasses | ||
---|---|---|
Balanced |
Bietet mehr CPU- und Arbeitsspeicherkapazität als die Limits für 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 Klasse
|
|
Scale-Out |
Bietet Single-Thread-pro-Core-Computing und horizontale Skalierung.
Verwenden Sie die Klasse
|
ComputeClass-Auswahl in Arbeitslasten
Wenn Sie eine ComputeClass für eine GKE-Arbeitslast verwenden möchten, wählen Sie die ComputeClass im Arbeitslastmanifest mit einem Knotenselektor für das Label cloud.google.com/compute-class
aus.
Im folgenden Beispiel-Deployment-Manifest wird eine ComputeClass ausgewählt:
Ersetzen Sie COMPUTE_CLASS
durch den Namen einer Compute-Klasse, 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.
- Den neuen Knoten werden automatisch Knotenlabels und Markierungen hinzugefügt, 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-Out
spezifisch 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 Compute-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 Compute-Klasse „horizontal skalieren“ unterstützt mehrere CPU-Architekturen. Sie können neben einer Compute-Klasse 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 maximal eine Architektur für Ihre Arbeitslast 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
- Bestimmte Compute-Klassen in den Autopilot-Arbeitslasten auswählen
- Informationen zu den Standard-, Mindest- und Höchstwerten für Ressourcen pro Plattform