Auf dieser Seite wird erläutert, wie Sie Ihre Ressourcenzuweisung analysieren und optimieren können, um die Effizienz Ihrer Arbeitslasten in Google Kubernetes Engine (GKE) mithilfe von vertikalem Pod-Autoscaling zu verbessern. Wenn Sie die Ressourcennutzung Ihrer Arbeitslast im Zeitverlauf analysieren, können Sie Optimierungsempfehlungen erhalten und CPU- und Arbeitsspeicheranfragen sowie Limits für Container in den Pods automatisch anpassen.
Auf dieser Seite erfahren Sie, wie vertikales Pod-Autoscaling funktioniert, welche Vorteile und Einschränkungen es hat und welche Best Practices für die Verwendung gelten. Außerdem erhalten Sie Zugriff auf die API-Referenzen für die benutzerdefinierte Ressource „VerticalPodAutoscaler“ und zugehörige Typen.
Diese Seite richtet sich an Betreiber und Entwickler, die Cloud-Ressourcen bereitstellen und konfigurieren, Arbeitslasten bereitstellen und die Anwendungsskalierung verwalten. Weitere Informationen zu gängigen Rollen finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.
Machen Sie sich vor dem Lesen dieser Seite mit Ressourcenanfragen und -limits in Kubernetes vertraut.
Wenn Sie eine schnelle Skalierung als Reaktion auf eine plötzliche Ressourcennutzung benötigen, verwenden Sie das horizontale Pod-Autoscaling.
Best Practices für Autoscaling finden Sie unter Best Practices zum Ausführen kostenoptimierter Kubernetes-Anwendungen in GKE.
Vorteile des vertikalen Pod-Autoscalings
Vertikales Pod-Autoscaling bietet folgende Vorteile:
- Wenn Sie die richtigen Ressourcenanfragen und -limits für Ihre Arbeitslasten festlegen, verbessern Sie die Stabilität und Kosteneffizienz. Wenn die Pod-Ressourcengrößen kleiner sind als Ihre Arbeitslasten benötigen, kann Ihre Anwendung gedrosselt werden oder infolge von Fehlern aufgrund mangelnden Arbeitsspeichers ausfallen. Sind Ihre Ressourcen zu groß bemessen, müssen Sie Verschwendung und somit höheren Rechnungen in Kauf nehmen.
- Clusterknoten werden effizient eingesetzt, da Pods die richtigen Ressourcenmengen nutzen.
- Pods werden auf Knoten geplant, auf denen die benötigten Ressourcen verfügbar sind.
- Sie müssen kein zeitaufwändiges Benchmarking durchführen, um die richtigen Werte für CPU- und Speicheranforderungen zu ermitteln.
- Die Wartungszeit wird reduziert, da die CPU- und Speicheranforderungen jederzeit automatisch angepasst werden können, ohne dass Sie etwas tun müssen.
- Vertikales Pod-Autoscaling funktioniert am besten mit homogenen Arbeitslasten mit langer Ausführungszeit.
Vertikales Pod-Autoscaling in Google Kubernetes Engine (GKE) bietet gegenüber dem Open-Source-Autoscaler von Kubernetes folgende Vorteile:
- Bei der Bestimmung des Empfehlungsziels werden die maximalen Knotengrößen und Ressourcenkontingente berücksichtigt.
- Benachrichtigt den Cluster Autoscaler, um die Clusterkapazität anzupassen.
- Es werden Verlaufsdaten verwendet, einschließlich Messwerten, die vor der Aktivierung von VerticalPodAutoscaler erfasst wurden.
- Führt VerticalPodAutoscaler-Pods als Steuerungsebenenprozesse und nicht als Deployments auf Ihren Worker-Knoten aus.
Funktionsweise von vertikalem Pod-Autoscaling
Mit vertikalem Pod-Autoscaling können Sie die für Pods erforderlichen CPU- und Arbeitsspeicherressourcen analysieren und festlegen. Anstatt aktuelle CPU-Anfragen und -Limits sowie Speicheranforderungen und -limits für die Container in Ihren Pods festzulegen, können Sie das vertikale Pod-Autoscaling so konfigurieren, dass sie empfohlene Werte für CPU- und Speicheranfragen sowie Limits bereitstellt, die Sie zur manuellen Aktualisierung Ihrer Pods verwenden können. Sie können das vertikale Pod-Autoscaling auch so konfigurieren, dass die Werte automatisch aktualisiert werden.
Vertikales Pod-Autoscaling ist in Autopilot-Clustern standardmäßig aktiviert.
Beziehung zum Open-Source-VerticalPodAutoscaler von Kubernetes
Das vertikale Pod-Autoscaling in GKE basiert auf der Open-Source-Kubernetes-API VerticalPodAutoscaler, ist aber eine separate Implementierung, die nur in GKE verfügbar ist. Die GKE-Implementierung ist mit einem eigenen Recommender auf Skalierbarkeit ausgelegt, behält aber die gleichen VerticalPodAutoscaler-API-Arten und -Felder bei, die in der Open-Source-Version definiert sind.
Weitere Informationen finden Sie in der Kubernetes-Dokumentation zum vertikalen Pod-Autoscaling.
Modi für vertikales Pod-Autoscaling
Sie können konfigurieren, wie das vertikale Pod-Autoscaling Ressourcenänderungen anwendet, indem Sie verschiedene Aktualisierungsmodi anwenden.
Auto-Modus (Recreate)
Im Modus Recreate entfernt das vertikale Pod-Autoscaling einen Pod, wenn die Ressourcenanfragen des Pods geändert werden müssen. Die Bereinigung ist erforderlich, da die Ressourcenanfragen eines aktiven Pods aufgrund von Kubernetes-Einschränkungen in Versionen vor 1.33 nur geändert werden können, indem der Pod neu erstellt wird.
Sie können ein Budget für Pod-Störungen verwenden, um die Anzahl der Pod-Neuerstellungen zu begrenzen . Mit dem Cluster Autoscaler und der automatischen Knotenbereitstellung können Sie gewährleisten, dass ein Cluster den neuen Umfang Ihrer Arbeitslasten verarbeiten kann.
Vertikales Pod-Autoscaling benachrichtigt vor dem Update den Cluster Autoscaler. Die für die geänderte Arbeitslast erforderlichen Ressourcen werden bereitgestellt, bevor sie neu erstellt wird, um die Unterbrechungszeit zu minimieren.
Initial-Modus
Wenn Initial aktiviert ist, weist vertikales Pod-Autoscaling Ressourcenanfragen nur bei der Pod-Erstellung zu und ändert sie später nie mehr.
InPlaceOrRecreate-Modus
Der Modus InPlaceOrRecreate soll Dienstunterbrechungen reduzieren, indem versucht wird, Pod-Ressourcen zu aktualisieren, ohne den Pod neu zu erstellen.
Wenn Sie den InPlaceOrRecreate-Modus verwenden möchten, setzen Sie das Feld spec.updatePolicy.updateMode in Ihrem VerticalPodAutoscaler-Objekt auf "InPlaceOrRecreate". In diesem Modus wird anhand des Felds resizePolicy in Ihrem Arbeitslastmanifest ermittelt, ob eine Ressourcenänderung einen Neustart erfordert. Wenn das Feld resizePolicy nicht definiert ist, wird standardmäßig NotRequired für CPU und Arbeitsspeicher verwendet. Das bedeutet, dass direkte Updates versucht werden.
Wenn ein Container aufgrund eines OOM-Ereignisses (Out of Memory) beendet wird, verhält sich das vertikale Pod-Autoscaling im Modus InPlaceOrRecreate ähnlich wie im Modus Auto: Es lernt aus dem Fehler. Bei der anschließenden Neuerstellung des Pods, die durch den Absturz ausgelöst wird, wendet das vertikale Pod-Autoscaling eine Empfehlung an, die einen Sicherheitspuffer enthält (normalerweise 20% zusätzlicher Arbeitsspeicher oder 100 MB, je nachdem, welcher Wert größer ist), um eine sofortige Wiederholung des OOM-Fehlers zu verhindern.
Der InPlaceOrRecreate-Modus ist ab Kubernetes-Version 1.34.0-gke.2201000 verfügbar.
Fallback-Szenarien für den InPlaceOrRecreate-Modus
Wenn das vertikale Pod-Autoscaling feststellt, dass ein direktes Update nicht möglich ist, wird auf das Verhalten des Recreate-Modus zurückgegriffen. Dabei wird der Pod entfernt und neu erstellt, um die Änderungen anzuwenden. Häufige Szenarien, in denen das vertikale Pod-Autoscaling auf die Neuerstellung zurückgreift:
- Unzureichende Knotenkapazität: Die aktualisierte Ressourcenanfrage überschreitet die zuweisbare Kapazität des aktuellen Knotens und die Aktualisierung kann nicht direkt geplant werden (Status „nicht möglich“ oder „verzögert“ für länger als ein Zeitlimit).
- Änderung der QoS-Klasse: Durch die Ressourcenaktualisierung würde sich die Dienstqualitätsklasse (Quality of Service, QoS) des Pods ändern, z. B. von
BurstablezuGuaranteed. RestartContainer-Richtlinie: Das FeldresizePolicydes Pods ist für eine Ressource, die das vertikale Pod-Autoscaling zu ändern versucht, aufRestartContainergesetzt.- Zeitüberschreitungen: Eine Anfrage für ein direktes Update bleibt zu lange im Status „Ausstehend“.
Off-Modus
Im Modus Off werden durch vertikales Pod-Autoscaling keine Änderungen automatisch auf einen Pod angewendet.
Sie können weiterhin empfohlene Werte für die Anfragen und Limits für CPU und Arbeitsspeicher basierend auf der bisherigen Nutzung aufrufen. Diese Empfehlungen werden jedoch nicht für Sie angewendet. Sie können die empfohlenen Werte bei Bedarf manuell auf Ihre Pods anwenden.
CPU-Boost beim Starten
Der CPU-Boost beim Start beschleunigt den Start von Anwendungen und verbessert die Kosteneffizienz, indem die CPU-Anfragen während der Initialisierung vorübergehend erhöht und dann direkt wieder auf das Ausgangsniveau zurückgesetzt werden.
Weitere Informationen zum Konfigurieren des CPU-Boosts beim Starten finden Sie unter Anwendungsstart mit CPU-Boost beim Starten beschleunigen.
Funktionsweise des CPU-Boosts beim Starten
Beim CPU-Start-Boost wird eine temporäre Ressourcenerhöhung basierend auf der CPU-Anfrage des Containers berechnet. Der Pod kehrt nach der Startphase zu diesem Baseline-Anforderungsniveau zurück.
Durch die Erhöhung wird diese Baseline-Anfrage entweder um einen Multiplikator oder um eine feste Menge erhöht. Diese erhöhte Anfrage bleibt aktiv, bis der Pod bereit ist. Danach setzt GKE die CPU-Anfrage auf den ursprünglichen Wert zurück.
Informationen zum Lebenszyklus von Boosts
Der Start-Boost-Prozess besteht aus drei Phasen:
- Zulassungsphase: Während der Pod-Zulassung fängt der VPA-Zulassungs-Webhook die Anfrage ab und fügt die erhöhten CPU-Werte ein, bevor GKE den Pod plant.
- Startphase: Die Anwendung wird mit der vorübergehend erhöhten CPU-Zuweisung initialisiert, um eine Drosselung der Initialisierung zu vermeiden.
- Unboosting-Phase: Nachdem der Pod den Status
Readyerreicht hat und der ZeitraumdurationSecondsabgelaufen ist, skaliert VPA die CPU-Anfrage direkt auf den Basiswert herunter.
Aktualisierungsmodus für optimierte Arbeitslasten auswählen
Sie können den CPU-Boost beim Start mit oder ohne kontinuierliche Ressourcenverwaltung des VPA konfigurieren. Durch die kontinuierliche Ressourcenverwaltung des VPA werden Ihre Pod-Ressourcenanfragen nach dem Ende der Startphase automatisch angepasst. Legen Sie dazu das Feld updateMode im VPA-Objekt fest. Weitere Informationen zu VPA-Aktualisierungsmodi finden Sie unter Modi für vertikales Pod-Autoscaling.
updateMode: "Off": Der VPA verwaltet nur den anfänglichen Boost während der Pod-Zulassung (eine Phase bei der Pod-Erstellung) und die anschließende Herunterskalierung nach dem Start. Die Ressourcenanfragen des Containers im stabilen Zustand werden nicht geändert.updateMode: "Auto","Recreate"oder"InPlaceOrRecreate": VPA verwaltet den Start-Boost und passt die Ressourcenanfragen Ihres Pods weiterhin automatisch basierend auf der laufenden Nutzung an.
So wird die Ressourcenzuweisung für den CPU-Boost berechnet
Die GKE berechnet die vorübergehend erhöhte CPU-Anfrage so:
Basis-CPU ermitteln: Die CPU-Basisanfrage hängt vom VPA-Feld
updateModeab:Auto,RecreateoderInPlaceOrRecreate: Die Baseline-CPU-Anfrage ist die VPA-Empfehlung. Wenn keine Empfehlung vorhanden ist, greift GKE auf die in der Pod-Spezifikation definierte CPU-Anfrage zurück.Off: Die CPU-Anfrage-Baseline ist der Anfragewert aus der Pod-Spezifikation.
Berechnen Sie die erhöhte CPU: Die Berechnung hängt von der Berechnungsmethode ab, die Sie im Feld
typeder Boost-Konfiguration angeben:Factor: Wendet einen Multiplikator auf die CPU-Basisanfrage an:Geboostete CPU = Basis-CPU ×
factorQuantity: Fügt der CPU-Basisanfrage eine absolute CPU-Menge hinzu:Geboostete CPU = Basis-CPU +
quantity
Die endgültige CPU-Anfrage hängt vom Clustermodus ab:
- Standardcluster: Die endgültige CPU-Anfrage ist der optimierte CPU-Wert.
- Autopilot-Cluster: Die endgültige CPU-Anfrage ist der erhöhte CPU-Wert, der durch die maximal zulässige CPU für den zugewiesenen Pod-Arbeitsspeicher begrenzt ist.
Verhalten des CPU-Limits während eines Boosts
Wie GKE CPU-Limits verarbeitet, hängt von der Einstellung controlledValues in Ihrer containerResourcePolicy ab:
RequestsAndLimits(Standard): GKE erhöht sowohl die CPU-Anfrage als auch das CPU-Limit und behält das ursprüngliche Verhältnis bei, um die Quality of Service (QoS)-Klasse des Containers beizubehalten.RequestsOnly: GKE erhöht nur die CPU-Anfrage. Die GKE begrenzt die hochgestufte Anfrage knapp unter dem definierten CPU-Limit, um die Dienstqualität aufrechtzuerhalten.
Hinweise zu Autopilot-Clustern
Da GKE Autopilot bestimmte CPU-zu-Arbeitsspeicher-Verhältnisse und Mindest-Pod-Größen erzwingt, prüft GKE die Boosts während der Pod-Zulassung, um die Compliance sicherzustellen. In den folgenden Szenarien kann ein Boost geändert oder ignoriert werden:
- Autopilot-Mindestwerte: Wenn die hochgestufte Anfrage unter den Mindest-CPU-Anforderungen für Autopilot-Arbeitslasten liegt (z. B. 50 m für Pods für allgemeine Zwecke), wendet GKE die Hochstufung nicht an und erzwingt die Standardmindestwerte.
- Verhältnisbegrenzung (teilweise oder übersprungene Boosts): Wenn die geboostete CPU-Anfrage den erforderlichen CPU-zu-Arbeitsspeicher-Verhältnisbereich überschreiten würde, begrenzt GKE den Boost auf den höchsten Wert, der den zugewiesenen Arbeitsspeicher berücksichtigt. Wenn die ursprüngliche Pod-Anfrage bereits das maximal zulässige CPU-zu-Arbeitsspeicher-Verhältnis verwendet, überspringt GKE den Boost, um eine Größenänderung des Arbeitsspeichers zu vermeiden.
- Scale-Out-ComputeClass: Die Scale-Out-ComputeClass erzwingt ein striktes Verhältnis von 1:4 (CPU:Arbeitsspeicher). Wenn Sie versuchen, die CPU eines Pods mit horizontaler Skalierung zu erhöhen, ohne den Arbeitsspeicher zu erhöhen, kann es sein, dass GKE die Erhöhung ignoriert.
Ressourcenrichtlinien
Mit ContainerResourcePolicy können Sie anpassen, wie das vertikale Pod-Autoscaling Empfehlungen für bestimmte Container generiert. Mit dieser Richtlinie können Sie Einschränkungen festlegen und steuern, welche Ressourcen skaliert werden.
Mindest- und Höchstlimits
Sie können die minimalen (minAllowed) und maximalen (maxAllowed) Ressourcenwerte für einen Container angeben.
minAllowed: Das vertikale Pod-Autoscaling empfiehlt keinen Wert, der unter diesem Limit liegt. Dieses Limit ist nützlich, da es dazu beiträgt, ein grundlegendes Leistungsniveau zu gewährleisten oder anwendungsspezifische Anforderungen zu erfüllen.maxAllowed: Das vertikale Pod-Autoscaling empfiehlt keinen Wert, der über diesem Limit liegt. Dieses Limit ist nützlich, um die Kosten zu kontrollieren oder zu verhindern, dass ein einzelner Container zu viele Knotenressourcen verbraucht.
Kontrollierte Ressourcen
Standardmäßig werden beim vertikalen Pod-Autoscaling Empfehlungen für CPU und Arbeitsspeicher berechnet. Im Feld controlledResources können Sie angeben, welche Ressourcen automatisch skaliert werden sollen. Sie können das Autoscaling beispielsweise so konfigurieren, dass nur Empfehlungen für den Arbeitsspeicher bereitgestellt werden und CPU-Anfragen unverändert bleiben.
Beschränkungen
- Wenn Sie vertikales Pod-Autoscaling mit horizontalem Pod-Autoscaling für die CPU verwenden möchten, verwenden Sie die HPA-Größenanpassung mit VPA (Vorabversion) oder das multidimensionale Pod-Autoscaling. Sie können auch vertikales Pod-Autoscaling mit horizontalem Pod-Autoscaling für benutzerdefinierte und externe Messwerte verwenden.
- Vertikales Pod-Autoscaling ist aufgrund der eingeschränkten Sichtbarkeit der tatsächlichen Arbeitsspeichernutzung der Arbeitslast noch nicht bereit für die Verwendung mit JVM-Arbeitslasten.
- In GKE-Version 1.35.1 und früher hat das vertikale Pod-Autoscaling eine Standardeinstellung von mindestens zwei Replikaten für Deployments, um Pods durch überarbeitete Ressourcenwerte zu ersetzen. In Version 1.35.2 und höher ist die Standardeinstellung ein Mindestreplikat. In Version 1.22 und höher können Sie diese Einstellung überschreiben. Geben Sie dazu im Feld PodUpdatePolicy einen Wert für das Feld
minReplicasan. - Wenn Sie den Aktualisierungsmodus
InPlaceOrRecreatedes vertikalen Pod-Autoscalings verwenden und eine direkte Aktualisierung nicht möglich ist (z. B. wenn der Pod über die Knotenkapazität hinaus skaliert wird), wird der Pod durch das vertikale Pod-Autoscaling entfernt und neu erstellt, um die Empfehlung anzuwenden. Die Bereinigung und Neuerstellung erfolgt auch für Pods, für die in ihrer Spezifikation einresizePolicy-Feld festgelegt ist, um Neuerstellungen zu vermeiden. Dieses Verhalten tritt bei Autopilot-Anfragen zur Größenanpassung auf, einschließlich bei der Anwendung von Mindestressourcen und Einschränkungen des CPU:Arbeitsspeicher-Verhältnisses. - Für das vertikale Pod-Autoscaling ist ein Arbeitslastobjekt erforderlich, das die Pods verwaltet, z. B. ein Deployment, StatefulSet, ReplicaSet oder ReplicationController. Sie können das vertikale Pod-Autoscaling nicht mit eigenständigen Pods verwenden, da ein Arbeitslast-Controller erforderlich ist, um den Prozess der Pod-Neuerstellung zu verwalten.
- Vertikales Pod-Autoscaling generiert Empfehlungen für Ressourcenanfragen und -limits auf Containerebene (
spec.containers[].resources) und wendet Aktualisierungen darauf an. Vertikales Pod-Autoscaling unterstützt keine Ressourcenspezifikationen auf Pod-Ebene (spec.resources).
Best Practices
- Anzahl der
VerticalPodAutoscaler-Objekte begrenzen. Um Unterbrechungen bei der Clusteraktualisierung zu vermeiden, sollten Sie die Anzahl derVerticalPodAutoscaler-Objekte pro Cluster unter 1.000 halten. - Vertikales Pod-Autoscaling funktioniert am besten mit homogenen Arbeitslasten mit langer Ausführungszeit.
- Lang laufend: Arbeitslasten, die mindestens 24 Stunden lang ausgeführt werden. Für das vertikale Pod-Autoscaling ist eine erhebliche Menge an Verlaufsdaten erforderlich, um Empfehlungen mit hoher Konfidenz zu generieren. Im Modus
AutooderRecreateerfolgen Aktualisierungen in der Regel, wenn ein Pod mindestens 24 Stunden alt ist. Dadurch werden häufige Pod-Neustarts und Abwanderung verhindert. - Homogen: Pods, die von einem einzelnen
VerticalPodAutoscaler-Objekt (z. B. alle Replikate in einem Deployment) angesprochen werden, sollten ähnliche Ressourcenverbrauchsmuster aufweisen. Der vertikale Pod-Autoscaler generiert Empfehlungen, indem er Nutzungsdaten aller Ziel-Pods aggregiert. Wenn Ihre Replikate eine heterogene Nutzung haben, z. B. wenn einige Pods inaktiv sind und andere stark ausgelastet sind, kann das vertikale Pod-Autoscaling eine Empfehlung geben, die die inaktiven Pods überdimensioniert oder die ausgelasteten Pods unterdimensioniert.
- Lang laufend: Arbeitslasten, die mindestens 24 Stunden lang ausgeführt werden. Für das vertikale Pod-Autoscaling ist eine erhebliche Menge an Verlaufsdaten erforderlich, um Empfehlungen mit hoher Konfidenz zu generieren. Im Modus
- Verwenden Sie horizontales Pod-Autoscaling für Arbeitslasten mit plötzlichen Nachfragespitzen. Vertikales Pod-Autoscaling ist für die Größenanpassung im stabilen Zustand konzipiert und keine Lösung für plötzliche, kurzlebige Ressourcenspitzen. Verwenden Sie für Arbeitslasten mit schnellen Schwankungen beim Traffic oder bei der Nachfrage nach CPU oder Arbeitsspeicher stattdessen das horizontale Pod-Autoscaling.
- OOM-Schutz nutzen. Obwohl der vertikale Pod-Autoscaler reaktiv ist, bietet er automatisierten Schutz vor Out-of-Memory-Ereignissen (OOM). Wenn ein Pod
OOMKilledist, beobachtet das vertikale Pod-Autoscaling das Ereignis sofort und erhöht die Speicherempfehlung um etwa 20% (oder 100 MB, je nachdem, welcher Wert größer ist), um die Stabilität zu verbessern, wenn der Pod neu erstellt wird. Weitere Informationen zu OOM-Ereignissen finden Sie unter OOM-Ereignisse beheben.
API-Referenz
Dies ist die v1-API-Referenz. Wir empfehlen dringend, diese Version der API zu verwenden.
VerticalPodAutoscaler v1 autoscaling.k8s.io
| Felder | |
|---|---|
|
API-Gruppe, Version und Art. |
metadata |
Standard-Objektmetadaten. |
spec |
Das Verhalten des |
status |
Zuletzt beobachteter Status des |
VerticalPodAutoscalerSpec v1 autoscaling.k8s.io
| Felder | |
|---|---|
targetRef |
Verweist auf den Controller, der die Pods für den Autoscaler verwaltet, um beispielsweise ein Deployment oder ein StatefulSet zu steuern.
Sie können einen |
updatePolicy |
Gibt an, ob empfohlene Aktualisierungen beim Start eines Pods angewendet werden und ob empfohlene Aktualisierungen während der Lebensdauer eines Pods angewendet werden. |
resourcePolicy |
Legt Richtlinien für das Anpassen der CPU- und Speicheranforderungen für einzelne Container fest. Mit der Ressourcenrichtlinie können Sie Einschränkungen für die Empfehlungen für einzelne Container festlegen. Wenn nicht angegeben, berechnet das Autoscaling empfohlene Ressourcen für alle Container im Pod ohne zusätzliche Beschränkungen. |
recommenders |
Der Recommender, der für die Generierung von Empfehlungen für dieses VPA-Objekt verantwortlich ist. Lassen Sie das Feld leer, um den von GKE bereitgestellten Standard-Recommender zu verwenden. Andernfalls kann die Liste genau einen Eintrag für einen vom Nutzer bereitgestellten alternativen Recommender enthalten. Unterstützt ab GKE 1.22. |
VerticalPodAutoscalerList v1 autoscaling.k8s.io
| Felder | |
|---|---|
|
API-Gruppe, Version und Art. |
metadata |
Standard-Objektmetadaten. |
items |
Eine Liste mit |
PodUpdatePolicy v1 autoscaling.k8s.io
| Felder | |
|---|---|
updateMode |
Gibt an, ob empfohlene Aktualisierungen beim Start eines Pods angewendet werden und ob empfohlene Aktualisierungen während der Lebensdauer eines Pods angewendet werden. Folgende Werte sind möglich:
|
minReplicas |
Die Mindestanzahl von Replikaten, die aktiv sein müssen, um die Pod-Bereinigung auszuführen (ausstehende Prüfungen wie Budget für Pod-Störungen).
Nur positive Werte sind zulässig. Der Standardwert ist |
PodResourcePolicy v1 autoscaling.k8s.io
| Felder | |
|---|---|
containerPolicies |
Eine Reihe von Ressourcenrichtlinien für einzelne Container. Es kann höchstens einen Eintrag für jeden benannten Container und optional einen einzelnen Platzhaltereintrag mit "containerName = '*'" geben, der alle Container abdeckt, die keine spezifischen Richtlinien haben. |
ContainerResourcePolicy v1 autoscaling.k8s.io
| Felder | |
|---|---|
containerName |
Der Name des Containers, für den die Richtlinie gilt. Wenn keine Angabe erfolgt, dient die Richtlinie als Standardrichtlinie. |
mode |
Gibt an, ob empfohlene Aktualisierungen beim Start eines Containers angewendet werden und ob empfohlene Aktualisierungen während der Lebensdauer eines Containers angewendet werden. Mögliche Werte sind "Off" (Aus) und "Auto" (Automatisch). Der Standardwert ist „Automatisch“, wenn Sie keinen Wert angeben. |
minAllowed |
Gibt die minimalen CPU- und Speicheranforderungen an, die für den Container zulässig sind. Standardmäßig gilt kein Minimum. |
maxAllowed |
Gibt die maximalen CPU- und Speicheranforderungen an, die für den Container zulässig sind. Standardmäßig gibt es keine Obergrenze. |
controlledResources |
Gibt den Typ der Empfehlungen an, die vom |
VerticalPodAutoscalerRecommenderSelector v1 autoscaling.k8s.io
| Felder | |
|---|---|
name |
Name des Recommenders, der für die Generierung der Empfehlung für dieses Objekt verantwortlich ist. |
VerticalPodAutoscalerStatus v1 autoscaling.k8s.io
| Felder | |
|---|---|
recommendation |
Die zuletzt empfohlenen CPU- und Speicheranforderungen. |
conditions |
Beschreibt den aktuellen Status des |
RecommendedPodResources v1 autoscaling.k8s.io
| Felder | |
|---|---|
containerRecommendations |
Eine Reihe von Ressourcenempfehlungen für einzelne Container. |
RecommendedContainerResources v1 autoscaling.k8s.io
| Felder | |
|---|---|
containerName |
Der Name des Containers, für den die Empfehlung gilt. |
target |
Die empfohlene CPU- und Speicheranforderung für den Container. |
lowerBound |
Die empfohlenen minimalen CPU- und Speicheranforderungen für den Container. Die angegebenen Ressourcenmengen gewährleisten keine stabile Ausführung der Anwendung. Die Ausführung mit geringeren CPU- und Speicheranforderungen hat wahrscheinliche erhebliche Auswirkungen auf Leistung oder Verfügbarkeit. |
upperBound |
Die empfohlenen maximalen CPU- und Speicheranforderungen für den Container. CPU- und Speicheranforderungen, die über diesen Werten liegen, führen wahrscheinlich zu einer Verschwendung von Ressourcen. |
uncappedTarget |
Die zuletzt vom Autoscaling berechnete Ressourcenempfehlung, die auf der tatsächlichen Ressourcennutzung basiert und die ContainerResourcePolicy nicht berücksichtigt. Wenn die tatsächliche Ressourcennutzung dazu führt, dass das Ziel gegen die ContainerResourcePolicy verstößt, kann dieser Wert von der begrenzten Empfehlung abweichen. Dieses Feld hat keinen Einfluss auf die tatsächliche Ressourcenzuweisung. Es wird nur als Statusangabe verwendet. |
VerticalPodAutoscalerCondition v1 autoscaling.k8s.io
| Felder | |
|---|---|
type |
Die Art des beschriebenen Zustands. Mögliche Werte sind "RecommendationProvided" (Empfehlung bereitgestellt), "LowConfidence" (Geringe Konfidenz), "NoPodsMatched" (Keine übereinstimmenden Pods) und "FetchingHistory" (Verlauf wird abgerufen). |
status |
Der Status des Zustands. Mögliche Werte sind "True" (Wahr), "False" (Falsch) und "Unknown" (Nicht bekannt). |
lastTransitionTime |
Die letzte Statusänderung des Zustands. |
reason |
Der Grund für die letzte Statusänderung. |
message |
Ein menschenlesbarer String mit Details zur letzten Statusänderung. |
Nächste Schritte
- Vertikales Pod-Autoscaling konfigurieren
- HPA-Arbeitslasten mit VPA optimieren
- Anwendungsstart mit CPU-Start-Boost beschleunigen
- Weitere Informationen zum horizontalen Pod-Autoscaling
- Weitere Informationen zu Cluster Autoscaler