Auf dieser Seite werden die maximalen, minimalen und standardmäßigen Ressourcenanfragen beschrieben, die Sie für GKE-Autopilot-Arbeitslasten (Google Kubernetes Engine) angeben können, und wie diese Anfragen automatisch geändert werden, um die Stabilität der Arbeitslasten zu gewährleisten.
Übersicht über Ressourcenanfragen in Autopilot
Autopilot verwendet die in Ihrer Arbeitslastkonfiguration angegebenen Ressourcenanfragen, um die Knoten zu konfigurieren, die Ihre Arbeitslasten ausführen. Autopilot erzwingt Mindest- und maximale Ressourcenanforderungen basierend auf der Compute-Klasse oder der Hardwarekonfiguration, die Ihre Arbeitslasten verwenden. Wenn Sie für einige Container keine Anfragen angeben, weist Autopilot Standardwerte zu, damit diese Container ordnungsgemäß ausgeführt werden.
Wenn Sie eine Arbeitslast in einem Autopilot-Cluster bereitstellen, prüft GKE die Arbeitslastkonfiguration anhand der zulässigen Mindest- und Höchstwerte für die ausgewählte Compute-Klasse oder Hardwarekonfiguration (wie z. B. GPUs). Wenn Ihre Anfragen unter dem Mindestwert liegen, ändert Autopilot Ihre Arbeitslastkonfiguration automatisch, um Ihre Anfragen innerhalb des zulässigen Bereichs zu bringen. Wenn Ihre Anfragen das Maximum überschreiten, lehnt Autopilot Ihre Arbeitslast ab und zeigt eine Fehlermeldung an.
In der folgenden Liste sind die Kategorien der Ressourcenanfragen zusammengefasst:
- Standardressourcenanfragen: Autopilot fügt diese hinzu, wenn Sie keine eigenen Anfragen für Arbeitslasten angeben.
- Minimale und maximale Ressourcenanfragen: Autopilot überprüft Ihre angegebenen Anfragen, um sicherzustellen, dass sie innerhalb dieser Limits liegen. Wenn Ihre Anfragen außerhalb der Limits liegen, ändert Autopilot Ihre Arbeitslastanfragen.
- Arbeitslasttrennung und erweiterte Daueranfragen: Autopilot hat unterschiedliche Standardwerte und unterschiedliche Mindestwerte für Arbeitslasten, die Sie voneinander trennen, oder für Pods, die einen erweiterten Schutz vor einer von GKE initiierten Bereinigung erhalten.
- Ressourcenanfragen für DaemonSets: Autopilot hat unterschiedliche Standard-, Mindest- und Höchstwerte für Container in DaemonSets.
Ressourcen anfordern
In Autopilot fordern Sie Ressourcen in Ihrer Pod-Spezifikation an. Die unterstützten Mindest- und Höchstwerte, die Sie basierend auf der Hardwarekonfiguration des Knotens anfordern können, auf dem die Pods ausgeführt werden. Informationen zum Anfordern bestimmter Hardwarekonfigurationen finden Sie auf den folgenden Seiten:
Standardanforderungen für Ressourcen
Wenn Sie für einige Container in einem Pod keine Ressourcenanforderungen angeben, wendet Autopilot Standardwerte an. Diese Standardeinstellungen eignen sich für viele kleinere Arbeitslasten.
Außerdem wendet Autopilot unabhängig von der ausgewählten Compute-Klasse oder Hardwarekonfiguration die folgenden Standardressourcenanforderungen an:
Container in DaemonSets
- CPU: 50 mCPU
- Arbeitsspeicher: 100 (MiB)
- Sitzungsspezifischer Speicher: 100 MiB
Alle anderen Container
- Sitzungsspezifischer Speicher: 1 GiB
Weitere Informationen zu den Limits für Autopilot-Cluster finden Sie unter Kontingente und Limits.
Standardanfragen für Compute-Klassen
Autopilot wendet die folgenden Standardwerte auf Ressourcen an, die nicht in der Pod-Spezifikation für Pods definiert sind, die auf Computing-Klassen ausgeführt werden: Wenn Sie nur eine der Anfragen festlegen und die andere leer lassen, verwendet GKE das im Abschnitt Mindest- und maximale Anfragen definierte CPU-:Arbeits-Speicherverhältnis, um die fehlende Anfrage festzulegen auf einen Wert, der dem Verhältnis entspricht.
Compute-Klasse | Ressource | Standardanfrage |
---|---|---|
Allgemeiner Zweck | CPU | 0,5 vCPU |
Arbeitsspeicher | 2 GiB | |
Ausgeglichen | CPU | 0,5 vCPU |
Arbeitsspeicher | 2 GiB | |
Leistung | CPU |
|
Arbeitsspeicher |
|
|
Sitzungsspezifischer Speicher |
|
|
Horizontal skalieren | CPU | 0,5 vCPU |
Arbeitsspeicher | 2 GiB |
Standardanfragen für andere Hardwarekonfigurationen
Autopilot wendet die folgenden Standardwerte auf Ressourcen an, die nicht in der Pod-Spezifikation für Pods definiert sind, die auf Knoten mit spezieller Hardware wie GPUs ausgeführt werden:
Hardware | Ressource | Standardanfrage insgesamt |
---|---|---|
H100 GPUs (80 GB)nvidia-h100-80gb |
CPU |
|
Arbeitsspeicher |
|
|
Sitzungsspezifischer Speicher |
|
|
A100 (40GB) GPUsnvidia-tesla-a100 |
CPU |
|
Arbeitsspeicher |
|
|
A100-GPUs (80 GB)nvidia-a100-80gb |
CPU |
|
Arbeitsspeicher |
|
|
Sitzungsspezifischer Speicher |
|
|
L4 GPUsnvidia-l4 |
CPU |
|
Arbeitsspeicher |
|
|
T4-GPUsnvidia-tesla-t4 |
CPU | 0,5 vCPU |
Arbeitsspeicher | 2 GiB |
Minimale und maximale Ressourcenanforderungen
Die insgesamt durch Ihre Bereitstellungskonfiguration angeforderten Ressourcen sollten innerhalb der unterstützten Mindest- und Höchstwerte liegen, die Autopilot zulässt. Dabei gelten folgende Bedingungen:
- Die Anfrage zu sitzungsspezifischem Speicher muss zwischen 10 MiB und 10 GiB für alle Compute-Klassen und Hardwarekonfigurationen liegen, sofern nicht anders angegeben. Für größere Volumes wird die Verwendung allgemeiner sitzungsspezifischer Volumes empfohlen, die gleichwertige Funktionen und Leistung für sitzungsspezifischen Speicher bieten, jedoch deutlich flexibler sind, da sie mit einer beliebigen GKE-Speicheroption verwendet werden können. Die maximale Größe für ein generisches sitzungsspezifisches Volume, das
pd-balanced
verwendet, beträgt beispielsweise 64 TiB. Für DaemonSet-Pods lauten die Mindestressourcenanfragen so:
- Cluster, die Bursting unterstützen: 1 mCPU pro Pod, 2 MiB Arbeitsspeicher pro Pod und 10 MiB sitzungsspezifischen Speicher pro Container im Pod.
- Cluster, die kein Bursting unterstützen: 10 mCPU pro Pod, 10 MiB Arbeitsspeicher pro Pod und 10 MiB sitzungsspezifischen Speicher pro Container im Pod.
Informationen zum Prüfen, ob Ihr Cluster Bursting unterstützt, finden Sie unter Bursting-Verfügbarkeit in GKE.
Das CPU-:Speicherverhältnis muss innerhalb des zulässigen Bereichs für die ausgewählte Compute-Klasse oder Hardwarekonfiguration liegen. Wenn das CPU-:Speicherverhältnis außerhalb des zulässigen Bereichs liegt, erhöht Autopilot automatisch die kleinere Ressource. Wenn Sie beispielsweise 1 vCPU und 16 GiB Arbeitsspeicher (Verhältnis 1:16) für Pods anfordern, die in der Klasse
Scale-Out
ausgeführt werden, erhöht Autopilot die CPU-Anfrage auf 4 vCPUs, was das Verhältnis zu 1:4 ändert.
Mindest- und Höchstwerte für Compute-Klassen
In der folgenden Tabelle werden die minimalen, maximalen und zulässigen CPU- und Speicherverhältnisse für jede von Autopilot unterstützte Compute-Klasse beschrieben:
Compute-Klasse | CPU:Speicherverhältnis (vCPU:GiB) | Ressource | Minimum | Maximum |
---|---|---|---|---|
Allgemeiner Zweck | Zwischen 1:1 und 1:6,5 | CPU | Der Wert hängt davon ab, ob Ihr Cluster Bursting unterstützt:
Informationen zum Prüfen, ob Ihr Cluster Bursting unterstützt, finden Sie unter Bursting-Verfügbarkeit in GKE. |
30 vCPU |
Arbeitsspeicher | Der Wert hängt davon ab, ob Ihr Cluster Bursting unterstützt:
Informationen zum Prüfen, ob Ihr Cluster Bursting unterstützt, finden Sie unter Bursting-Verfügbarkeit in GKE. |
110 GiB | ||
Ausgeglichen | Zwischen 1:1 und 1:8 | CPU | 0,25 vCPU | 222 vCPU Wenn Mindest-CPU-Plattform ausgewählt ist:
|
Arbeitsspeicher | 0,5 GiB | 851 GiB Wenn Mindest-CPU-Plattform ausgewählt ist:
|
||
Leistung | – | CPU | 0,001 vCPU |
|
Arbeitsspeicher | 1 MiB |
|
||
Sitzungsspezifischer Speicher | 10 MiB |
|
||
Horizontal skalieren | 1:4 | CPU | 0,25 vCPU |
|
Arbeitsspeicher | 1 GiB |
|
Informationen zum Anfordern von Compute-Klassen in Ihren Autopilot-Pods finden Sie unter Compute-Klassen für Autopilot-Pods auswählen.
Mindest- und Höchstwerte für andere Hardwarekonfigurationen
In der folgenden Tabelle werden die minimale, maximale und zulässige CPU- und Speicherauslastung für Pods beschrieben, die auf Knoten mit bestimmter Hardware wie GPUs ausgeführt werden: Sofern nicht anders angegeben, beträgt der maximale unterstützte Sitzungsspezifische Speicher 122 GiB in Versionen 1.28.6-gke.1369000 oder höher und 1.29.1-gke.1575000 oder höher. Bei früheren Versionen beträgt der maximal unterstützte Sitzungsspezifische Speicher 10 GiB.
Hardware | CPU:Speicherverhältnis (vCPU:GiB) | Ressource | Minimum | Maximum |
---|---|---|---|---|
H100 GPUs (80 GB)nvidia-h100-80gb |
Nicht erzwungen | CPU |
|
|
Arbeitsspeicher |
|
|
||
Sitzungsspezifischer Speicher |
|
|
||
A100 (40GB) GPUsnvidia-tesla-a100 |
Nicht erzwungen | CPU |
|
Die Summe der CPU-Anfragen aller DaemonSets, die auf einem A100-GPU-Knoten ausgeführt werden, darf 2 vCPUs nicht überschreiten. |
Arbeitsspeicher |
|
Die Summe der Speicheranfragen aller DaemonSets, die auf einem A100-GPU-Knoten ausgeführt werden, darf 14 GiB nicht überschreiten. |
||
A100-GPUs (80 GB)nvidia-a100-80gb |
Nicht erzwungen | CPU |
|
Die Summe der CPU-Anfragen aller DaemonSets, die auf einem A100-GPU-Knoten (80 GB) ausgeführt werden, darf 2 vCPUs nicht überschreiten. |
Arbeitsspeicher |
|
Die Summe der Speicheranfragen aller DaemonSets, die auf einem A100-GPU-Knoten (80 GB) ausgeführt werden, darf 14 GiB nicht überschreiten. |
||
Sitzungsspezifischer Speicher |
|
|
||
L4 GPUsnvidia-l4 |
|
CPU |
|
Die Summe der CPU-Anfragen aller DaemonSets, die auf einem L4-GPU-Knoten ausgeführt werden, darf 2 vCPUs nicht überschreiten. |
Arbeitsspeicher |
|
Die Summe der Speicheranfragen aller DaemonSets, die auf einem L4-GPU-Knoten ausgeführt werden, darf 14 GiB nicht überschreiten. |
||
T4-GPUsnvidia-tesla-t4 |
Zwischen 1:1 und 1:6,25 | CPU | 0,5 vCPU |
|
Arbeitsspeicher | 0,5 GiB |
|
Informationen zum Anfordern von GPUs in Ihren Autopilot-Pods finden Sie unter GPU-Arbeitslasten in Autopilot bereitstellen.
Ressourcenanfragen für die Arbeitslasttrennung und erweiterte Dauer
Mit Autopilot können Sie das Planungs- und Bereinigungsverhalten von Kubernetes mit Methoden wie den folgenden bearbeiten:
- Verwenden Sie Markierungen und Toleranzen und Knotenselektoren, damit bestimmte Pods nur auf bestimmten Knoten platziert werden. Weitere Informationen finden Sie unter Arbeitslasttrennung in GKE konfigurieren.
- Verwenden Sie Pod-Anti-Affinität, um zu verhindern, dass sich Pods auf demselben Knoten befinden. Die standardmäßigen und minimalen Ressourcenanfragen für Arbeitslasten, die diese Methoden zur Steuerung des Planungsverhaltens verwenden, sind höher als für Arbeitslasten, die dies nicht tun.
- Verwenden Sie eine Annotation, um Pods vor der Bereinigung durch automatische Knotenupgrades und Herunterskalierungsereignisse bis zu sieben Tage zu schützen. Weitere Informationen finden Sie unter Laufzeit von Autopilot-Pods verlängern.
Wenn die von Ihnen angegebenen Anfragen unter den Mindestwerten liegen, ändert sich das Verhalten von Autopilot basierend auf der verwendeten Methode so:
- Markierungen, Toleranzen, Selektoren und Pods mit erweiterter Dauer: Autopilot ändert Ihre Pods, um die Anfragen beim Planen der Pods zu erhöhen.
- Pod-Anti-Affinität: Autopilot lehnt den Pod ab und zeigt eine Fehlermeldung an.
In der folgenden Tabelle werden die Standardanfragen und die minimalen Ressourcenanfragen beschrieben, die Sie angeben können. Wenn eine Konfiguration oder Compute-Klasse in dieser Tabelle nicht vorhanden ist, erzwingt Autopilot keine Mindest- oder Standardwerte.
Compute-Klasse | Ressource | Standard | Minimum |
---|---|---|---|
Allgemeiner Zweck | CPU | 0,5 vCPU | 0,5 vCPU |
Arbeitsspeicher | 2 GiB | 0,5 GiB | |
Ausgeglichen | CPU | 2 vCPU | 1 vCPU |
Arbeitsspeicher | 8 GiB | 4 GiB | |
Horizontal skalieren | CPU | 0,5 vCPU | 0,5 vCPU |
Arbeitsspeicher | 2 GiB | 2 GiB |
Init-Container
Init-Container werden nacheinander ausgeführt und müssen abgeschlossen sein, bevor die Anwendungscontainer gestartet werden. Wenn Sie keine Ressourcenanfragen für Ihre Autopilot-init-Container angeben, weist GKE jedem Init-Container die für den Pod verfügbaren Standardressourcen zu. Dieses Verhalten unterscheidet sich vom GKE-Standard, bei dem jeder Init-Container alle nicht zugewiesenen Ressourcen verwenden kann, die auf dem Knoten verfügbar sind, auf dem der Pod geplant ist.
Im Gegensatz zu Anwendungscontainern empfiehlt GKE, dass Sie keine Ressourcenanfragen für Autopilot-init-Container angeben, damit jeder Container die vollständigen Ressourcen erhält, die für den Pod verfügbar sind. Wenn Sie weniger Ressourcen als die Standardwerte anfordern, schränken Sie den init-Container ein. Wenn Sie mehr Ressourcen anfordern als die Autopilot-Standardeinstellungen, können Sie die Abrechnung für die Lebensdauer des Pods erhöhen.
Ressourcenlimits in Autopilot festlegen
Mit Kubernetes können Sie sowohl requests
als auch limits
für Ressourcen in Ihrer Pod-Spezifikation festlegen. Das Verhalten Ihrer Pods ändert sich je nachdem, ob Ihre limits
sich von Ihren requests
unterscheiden, wie in der folgenden Tabelle beschrieben:
Festgelegte Werte | Autopilot-Verhalten |
---|---|
requests ist gleich limits |
Pods verwenden die QoS-Klasse Guaranteed .
|
requests festgelegt, limits nicht festgelegt |
Das Verhalten hängt davon ab, ob Ihr Cluster Bursting unterstützt:
Informationen zum Prüfen, ob Ihr Cluster Bursting unterstützt, finden Sie unter Bursting-Verfügbarkeit in GKE. |
requests nicht festgelegt, limits festgelegt |
Autopilot setzt requests auf den Wert limits , dem Standardverhalten von Kubernetes.
Vorher: resources: limits: cpu: "400m" Nachher: resources: requests: cpu: "400m" limits: cpu: "400m" |
requests weniger als limits |
Das Verhalten hängt davon ab, ob Ihr Cluster Bursting unterstützt:
Informationen zum Prüfen, ob Ihr Cluster Bursting unterstützt, finden Sie unter Bursting-Verfügbarkeit in GKE. |
requests ist größer als limits |
Autopilot setzt requests auf den Wert limits .
Vorher: resources: requests: cpu: "450m" limits: cpu: "400m" Nachher: resources: requests: cpu: "400m" limits: cpu: "400m" |
requests nicht festgelegt, limits nicht festgelegt |
Autopilot setzt Das Verhalten von
Informationen zum Prüfen, ob Ihr Cluster Bursting unterstützt, finden Sie unter Bursting-Verfügbarkeit in GKE. |
In den meisten Fällen sollten Sie angemessene Ressourcenanfragen und gleiche Limits für Ihre Arbeitslasten festlegen.
Legen Sie für Arbeitslasten, die vorübergehend mehr Ressourcen benötigen als ihr stabiler Status, z. B. während des Bootvorgangs oder in höheren Trafficzeiträumen, die Limits höher als Ihre Anfragen fest, damit die Pods Bursts verursachen können. Weitere Informationen finden Sie unter Pod-Bursting in GKE konfigurieren.
Automatische Ressourcenverwaltung in Autopilot
Wenn sich die von Ihnen angegebenen Ressourcenanforderungen für Ihre Arbeitslasten außerhalb der zulässigen Bereiche befinden oder Sie für einige Container keine Ressourcen anfordern, ändert Autopilot Ihre Arbeitslastkonfiguration so, dass sie die zulässigen Limits erfüllt. Autopilot berechnet Ressourcenverhältnisse und Ressourcenanforderungen für Hochskalieren, nachdem die Standardwerte auf Container ohne Anfrage angewendet wurden.
- Fehlende Anfragen: Wenn Sie in einigen Containern keine Ressourcen anfordern, wendet Autopilot die Standardanfragen für die Compute-Klasse oder Hardwarekonfiguration an.
- CPU:Arbeitsspeicherverhältnis: Autopilot skaliert die kleinere Ressource, um das Verhältnis innerhalb des zulässigen Bereichs zu bringen.
- Sitzungsspezifischer Speicher: Autopilot ändert Ihre sitzungsspezifischen Speicheranfragen so, dass die von jedem Container benötigte Mindestmenge erfüllt wird. Der kumulative Wert für Speicheranfragen in allen Containern darf nicht größer als der maximal zulässige Wert sein. Autopilot skaliert die Anfrage herunter, wenn der Wert das Maximum überschreitet.
- Anfragen unterhalb der Mindestwerte: Wenn Sie weniger Ressourcen als das zulässige Minimum für die ausgewählte Hardwarekonfiguration anfordern, ändert Autopilot den Pod automatisch so, dass er mindestens den Ressourcenwert anfordert.
Wenn Autopilot eine Ressource automatisch so skaliert, dass ein Mindest- oder Standardressourcenwert erreicht wird, weist GKE standardmäßig die zusätzliche Kapazität dem ersten Container im Pod-Manifest zu. In GKE-Version 1.27.2-gke.2200 und höher können Sie GKE anweisen, die zusätzlichen Ressourcen einem bestimmten Container zuzuweisen. Fügen Sie dazu dem Feld annotations
in Ihrem Pod-Manifest Folgendes hinzu:
autopilot.gke.io/primary-container: "CONTAINER_NAME"
Ersetzen Sie CONTAINER_NAME
durch den Namen des Containers.
Beispiele für Ressourcenänderungen
Das folgende Beispielszenario zeigt, wie Autopilot Ihre Arbeitslastkonfiguration ändert, um die Anforderungen Ihrer ausgeführten Pods und Container zu erfüllen.
Einzelner Container mit < 0,05 vCPU
Containernummer | Ursprüngliche Anfrage | Geänderte Anfrage |
---|---|---|
1 |
CPU: 30 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 50 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
Mehrere Container mit Gesamt-CPU < 0,05 vCPU
Containernummer | Ursprüngliche Anfragen | Geänderte Anfragen |
---|---|---|
1 |
CPU: 10 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 30 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
2 |
CPU: 10 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 10 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
3 | CPU: 10 mvCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 10 mCPU Arbeits-Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
Pod-Ressourcen insgesamt |
CPU: 50 mCPU Arbeits-Speicher: 1,5 GiB Sitzungsspezifischer Speicher: 30 MiB |
Mehrere Container mit mehr als 0,25 vCPUs
Bei mehreren Containern mit einer Gesamtressource von >= 0,25 vCPU wird die CPU auf ein Vielfaches von 0,25 vCPUs aufgerundet und die zusätzliche CPU wird dem ersten Container hinzugefügt. In diesem Beispiel beträgt die ursprüngliche kumulative CPU 0,32 vCPU und wird auf insgesamt 0,5 vCPUs geändert.
Containernummer | Ursprüngliche Anfragen | Geänderte Anfragen |
---|---|---|
1 | CPU: 0,17 vCPU Speicher: 0.5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 0,35 vCPU Speicher: 0.5 GiB Sitzungsspezifischer Speicher: 10 MiB |
2 | CPU: 0,08 vCPU Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 0,08 vCPU Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
3 | CPU: 0,07 vCPU Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 0,07 vCPU Speicher: 0,5 GiB Sitzungsspezifischer Speicher: 10 MiB |
4 | Init-Container, nicht definierte Ressourcen | Erhält Pod-Ressourcen |
Pod-Ressourcen insgesamt | CPU: 0,5 vCPU Speicher: 1,5 GiB Sitzungsspezifischer Speicher: 30 MiB |
Einzelner Container mit zu wenig Arbeitsspeicher für die angeforderte CPU
In diesem Beispiel ist der Speicher für die CPU-Menge zu niedrig (mindestens 1 vCPU:1 GiB). Das minimal zulässige Verhältnis von CPU zu Arbeitsspeicher beträgt 1:1. Wenn das Verhältnis niedriger ist, wird die Speicheranfrage erhöht.
Containernummer | Ursprüngliche Anfrage | Geänderte Anfrage |
---|---|---|
1 | CPU: 4 vCPU Speicher: 1 GiB Sitzungsspezifischer Speicher: 10 MiB |
CPU: 4 vCPU Speicher: 4 GiB Sitzungsspezifischer Speicher: 10 MiB |
Pod-Ressourcen insgesamt | CPU: 4 vCPU Speicher: 4 GiB Sitzungsspezifischer Speicher: 10 MiB |
Nächste Schritte
- Compute-Klassen in den Autopilot-Arbeitslasten auswählen
- Weitere Informationen zu den unterstützten Autopilot-Compute-Klassen
- GPUs in Autopilot-Pods auswählen