Beim vertikalen Pod-Autoscaling werden CPU- und Arbeitsspeicherressourcenanforderungen und ‑limits für Container in Kubernetes-Pods automatisch festgelegt. Beim vertikalen Pod-Autoscaling wird die bisherige und aktuelle Ressourcennutzung analysiert, um Empfehlungen zu geben, die entweder angezeigt oder automatisch angewendet werden können, indem Pods aktualisiert werden. Diese Funktion verbessert die Stabilität und Kosteneffizienz, indem Ressourcen richtig dimensioniert werden.
Hinweise
Bevor Sie das Vertikales Pod-Autoscaling konfigurieren, müssen Sie die folgenden Voraussetzungen erfüllen:
- Sie haben einen Bare-Metal-Cluster, der ausgeführt wird.
- Sie haben
kubectl-Zugriff auf den Cluster. - Metrics Server ist im Cluster verfügbar. Bare-Metal-Cluster enthalten standardmäßig Metrics Server.
Vertikales Pod-Autoscaling aktivieren
Aktivieren Sie das vertikale Pod-Autoscaling in Ihrem Bare-Metal-Cluster, indem Sie eine Preview-Annotation festlegen und die Clusterspezifikation konfigurieren:
Fügen Sie der benutzerdefinierten Clusterressource die Vorschau-Annotation hinzu oder aktualisieren Sie sie.
Bearbeiten Sie die benutzerdefinierte Clusterressource direkt oder ändern Sie die Clusterkonfigurationsdatei und verwenden Sie
bmctl update.metadata: annotations: preview.baremetal.cluster.gke.io/vertical-pod-autoscaler: enableÄndern Sie die
specder benutzerdefinierten Clusterressource, um das FeldverticalPodAutoscalingeinzuschließen und die ModienableUpdaterundenableMemorySaveranzugeben:apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: cluster1 namespace: cluster-cluster1 annotations: preview.baremetal.cluster.gke.io/vertical-pod-autoscaler: enable spec: # ... other cluster spec fields verticalPodAutoscaling: enableUpdater: true # Set to true for automated updates enableMemorySaver: true # Set to true to reduce recommender memory usageWenn Sie die Clusterkonfigurationsdatei geändert haben, wenden Sie die Änderungen mit dem folgenden Befehl an:
bmctl update cluster -c CLUSTER_NAME --kubeconfig KUBECONFIGErsetzen Sie Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.KUBECONFIG: der Pfad der kubeconfig-Datei des Clusters.
Benutzerdefinierte VerticalPodAutoscaler-Ressource erstellen
Nachdem Sie das vertikale Pod-Autoscaling für Ihren Cluster aktiviert haben, definieren Sie eine benutzerdefinierte VerticalPodAutoscaler-Ressource für bestimmte Arbeitslasten:
Definieren Sie eine
VerticalPodAutoscaler-Ressource im selben Namespace wie die Zielarbeitslast.Mit dieser benutzerdefinierten Ressource wird angegeben, auf welche Pods sie mit
targetRefund allen Ressourcenrichtlinien ausgerichtet ist.apiVersion: "autoscaling.k8s.io/v1" kind: VerticalPodAutoscaler metadata: name: hamster-vpa spec: targetRef: apiVersion: "apps/v1" kind: Deployment name: hamster resourcePolicy: containerPolicies: - containerName: '*' minAllowed: cpu: 100m memory: 50Mi maxAllowed: cpu: 1 memory: 500Mi controlledResources: ["cpu", "memory"]Führen Sie den folgenden Befehl aus, um das Manifest
VerticalPodAutoscaleranzuwenden:kubectl apply -f VPA_MANIFEST \ --kubeconfig KUBECONFIGErsetzen Sie Folgendes:
VPA_MANIFEST: der Pfad der ManifestdateiVerticalPodAutoscaler.KUBECONFIG: Der Pfad der kubeconfig-Datei des Clusters.
Modi für vertikales Pod-Autoscaling
Vertikales Pod-Autoscaling funktioniert in verschiedenen Modi, die steuern, wie Ressourcenempfehlungen angewendet werden.
Empfehlungsmodus
Im Empfehlungsmodus wird durch das vertikale Pod-Autoscaling die Empfehlungskomponente installiert. Diese Komponente analysiert die Ressourcennutzung und veröffentlicht empfohlene Werte für CPU- und Speicheranforderungen und ‑limits im Statusbereich der benutzerdefinierten VerticalPodAutoscaler-Ressourcen, die Sie erstellen.
Verwenden Sie den folgenden Befehl, um Empfehlungen für Ressourcenanfragen und ‑limits aufzurufen:
kubectl describe vpa VPA_NAME \
--kubeconfig KUBECONFIG \
-n CLUSTER_NAMESPACE
Replace the following:
* `VPA_NAME`: the name of the `VerticalPodAutoscaler`
that's targeting the workloads for which you are considering resource
adjustments.
* `KUBECONFIG`: the path of the cluster kubeconfig
file.
* `CLUSTER_NAMESPACE`: the name of the cluster that's
running vertical Pod autoscaling.
Die Antwort sollte einen Status-Abschnitt enthalten, der dem folgenden Beispiel ähnelt:
Status:
Conditions:
Last Transition Time: 2025-08-04T23:53:32Z
Status: True
Type: RecommendationProvided
Recommendation:
Container Recommendations:
Container Name: hamster
Lower Bound:
Cpu: 100m
Memory: 262144k
Target:
Cpu: 587m
Memory: 262144k
Uncapped Target:
Cpu: 587m
Memory: 262144k
Upper Bound:
Cpu: 1
Memory: 500Mi
Pods werden in diesem Modus nicht automatisch aktualisiert. Anhand dieser Empfehlungen können Sie Ihre Pod-Konfigurationen manuell aktualisieren. Dies ist das Standardverhalten, wenn enableUpdater nicht festgelegt oder false ist.
Automatischer Aktualisierungsmodus
Wenn Sie enableUpdater
enableUpdater auf true festlegen, stellen Bare-Metal-Lifecycle-Controller zusätzlich zum Empfehlungsmodul die Komponenten für vertikales Pod-Autoscaling-Updater und Admission-Controller bereit. Der Updater überwacht Pods, deren aktuelle Ressourcenanforderungen erheblich von den Empfehlungen abweichen.
Die Aktualisierungsrichtlinie in der VerticalPodAutoscaler-Ressource gibt an, wie der Updater die Empfehlungen anwendet. Der Standardaktualisierungsmodus ist Auto. Das bedeutet, dass der Updater beim Erstellen von Pods aktualisierte Ressourceneinstellungen zuweist. Im folgenden VerticalPodAutoscaler-Beispiel wird gezeigt, wie Sie den Aktualisierungsmodus auf Initial festlegen:
apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
name: hamster-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: hamster
resourcePolicy:
updatePolicy:
updateMode: "Initial"
...
Das Updater-Tool unterstützt die folgenden fünf Modi:
Auto: Der Updater entfernt den Pod. Der Admission Controller fängt die Erstellungsanfrage für den neuen Pod ab und ändert sie so, dass die vom Recommender empfohlenen CPU- und Speicherwerte verwendet werden. Zum Aktualisieren von Ressourcen muss der Pod neu erstellt werden, was zu Unterbrechungen führen kann. Verwenden Sie Budgets für Pod-Störungen, die vom Updater berücksichtigt werden, um den Bereinigungsprozess zu verwalten. Dieser Modus entsprichtRecreate.Recreate: Der Updater bereinigt Pods und weist empfohlene Ressourcenanfragen und ‑limits zu, wenn der Pod neu erstellt wird.InPlaceOrRecreate(Alpha): Der Updater versucht, In-Place-Updates nach bestem Wissen und Gewissen durchzuführen, kann aber auf das Neuerstellen des Pods zurückgreifen, wenn In-Place-Updates nicht möglich sind. Weitere Informationen finden Sie in der Dokumentation zum Anpassen der Größe von Pods am selben Ort.Initial: Der Updater weist Ressourcenanfragen nur bei der Pod-Erstellung zu und ändert sie später nie mehr.Off: Der Updater ändert die Ressourcenanforderungen der Pods nicht automatisch. Die Empfehlungen werden ermittelt und können imVerticalPodAutoscaler-Objekt untersucht werden.
Weitere Informationen zur benutzerdefinierten Ressource VerticalPodAutoscaler erhalten Sie mit kubectl, um die benutzerdefinierte Ressourcendefinition verticalpodautoscalercheckpoints.autoscaling.k8s.io abzurufen, die auf dem Cluster mit Version 1.33.0 oder höher installiert ist.
Das folgende Beispiel zeigt, wie Ressourcenempfehlungen im Abschnitt Status für den Container hamster angezeigt werden können. Das Beispiel zeigt auch ein Beispiel für ein Pod-Entfernungsereignis, das auftritt, wenn der Updater einen Pod entfernt, bevor er dem neu erstellten Pod automatisch die empfohlene Ressourcenkonfiguration zuweist:
Spec:
Resource Policy:
Container Policies:
Container Name: *
Controlled Resources:
cpu
memory
Max Allowed:
Cpu: 1
Memory: 500Mi
Min Allowed:
Cpu: 100m
Memory: 50Mi
Target Ref:
API Version: apps/v1
Kind: Deployment
Name: hamster
Update Policy:
Update Mode: Auto
Status:
Conditions:
Last Transition Time: 2025-08-04T23:53:32Z
Status: True
Type: RecommendationProvided
Recommendation:
Container Recommendations:
Container Name: hamster
Lower Bound:
Cpu: 100m
Memory: 262144k
Target:
Cpu: 587m
Memory: 262144k
Uncapped Target:
Cpu: 587m
Memory: 262144k
Upper Bound:
Cpu: 1
Memory: 500Mi
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal EvictedPod 49s vpa-updater VPA Updater evicted Pod hamster-7cb59fb657-lkrk4 to apply resource recommendation.
Arbeitsspeicher-Sparmodus
Im Speichersparmodus wird der Speicherbedarf der Empfehlungskomponente für vertikales Pod-Autoscaling reduziert. Wenn Sie enableMemorySaver auf true festlegen, werden vom Recommender nur Aggregationen für Pods mit einer entsprechenden benutzerdefinierten VerticalPodAutoscaler-Ressource erfasst und berechnet.
Wenn Sie eine neue benutzerdefinierte VerticalPodAutoscaler-Ressource für eine vorhandene Arbeitslast erstellen, benötigt der Recommender einige Zeit (bis zu 24 Stunden), um genügend Daten zu sammeln, um genaue Empfehlungen zu geben. Dieser Modus ist für die meisten Clustertypen standardmäßig false, für Edge-Cluster jedoch true.
Prometheus als Anbieter für den persistenten Verlauf verwenden
Standardmäßig speichert die Empfehlungskomponente den Ressourcenverbrauch der Arbeitslasten, die im Cluster ausgeführt werden, im Arbeitsspeicher und speichert den Status regelmäßig in einer VerticalPodAutoscalerCheckpoint-benutzerdefinierten Ressource in etcd, um die Ausfallsicherheit bei Neustarts zu gewährleisten.
Ab Google Distributed Cloud-Version 1.34 können Sie Ihre eigene Prometheus-Instanz als Anbieter für den persistenten Verlauf von Daten zum Ressourcenverbrauch verwenden, nämlich Messwerte zur CPU- und Arbeitsspeichernutzung. Wenn diese Integration aktiviert ist, kann der Empfehlungsdienst beim Start oder Neustart den Prometheus-Server abfragen, um langfristige historische Daten zur Ressourcennutzung für alle verwalteten Pods abzurufen. Durch den Abruf dieser Daten kann der Empfehlungsdienst seinen internen Status sofort mit einem umfangreichen Datensatz aufbauen, was von Anfang an zu fundierteren und genaueren Empfehlungen führt.
Die Verwendung von Prometheus als Anbieter für den persistenten Verlauf bietet die folgenden Vorteile:
Ressourcennutzung optimieren:Sobald die Funktion gestartet wird, werden fundierte und genaue Empfehlungen generiert, damit Sie die Nutzung von Clusterressourcen optimieren können.
OOM-Fehler („Out Of Memory“) verhindern:Bei Prometheus muss der interne Status des Empfehlungstools nicht in
VerticalPodAutoscalerCheckpoint-benutzerdefinierten Ressourcen (Custom Resources, CRs) gespeichert werden, wodurch die ETCD-Speicherauslastung effizienter wird. Wenn die Empfehlungskomponente neu gestartet wird, gehen die im Arbeitsspeicher gespeicherten Verlaufsdaten verloren. Wenn Sie Prometheus als Verlaufsanbieter verwenden, ruft der Empfehlungsdienst beim Neustart Verlaufs-Messwerte aus Prometheus ab. Dadurch ist dieVerticalPodAutoscalerCheckpoint-CR nicht mehr erforderlich und ETCD-Arbeitsspeicher wird gespart.
Sie können die Verwendung von Prometheus als Anbieter für den persistenten Verlauf jederzeit aktivieren und deaktivieren.
Voraussetzungen für die Verwendung von Prometheus mit vertikalem Pod-Autoscaling
Wenn Sie Ihre eigene Prometheus-Instanz als Verlaufsanbieter für vertikales Pod-Autoscaling verwenden möchten, müssen Sie sie so konfigurieren, dass die erforderlichen Messwerte erfasst werden. Dazu sind die folgenden Schritte erforderlich:
Stellen Sie bei Bedarf den Prometheus-Operator in dem Cluster bereit, für den Sie ihn als Anbieter für den persistenten Verlauf für das vertikale Pod-Autoscaling verwenden möchten. Weitere Informationen finden Sie unter Prometheus-Operator in Kubernetes bereitstellen und konfigurieren.
Berechtigungen für das Erheben von Messwerten konfigurieren
Damit Prometheus Messwerte aus cAdvisor mithilfe einer Konfigurationsdatei erfassen kann, müssen Sie dem Dienstkonto, das vom Prometheus-Server verwendet wird, zusätzliche Berechtigungen erteilen. Erstellen oder aktualisieren Sie eine
ClusterRolemit diesen Regeln und sorgen Sie dafür, dass sie mit einerClusterRoleBindingan das richtige Prometheus-Dienstkonto gebunden ist:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: prometheus-role labels: app: prometheus-server rules: - apiGroups: [""] resources: - nodes verbs: - get - list - watch - apiGroups: [""] resources: - nodes/proxy - nodes/metrics verbs: - get --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: prometheus-binding labels: app: prometheus-server subjects: - kind: ServiceAccount name: prometheus-server # Service account being used by prometheus namespace: prometheus # Service account's namespace roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus-role # Name of the ClusterRole created aboveAktualisieren Sie die Prometheus-Konfigurationsdatei, um die folgenden Messwerte von cAdvisor zu extrahieren:
container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes
In den folgenden Zeilen werden die Scrape-Details für die cAdvisor-Messwerte definiert:
- job_name: 'kubernetes-cadvisor' scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor metric_relabel_configs: # Keep only the metrics VPA uses to save disk space - source_labels: [__name__] regex: (container_cpu_usage_seconds_total|container_memory_working_set_bytes) action: keepAktualisieren Sie die Prometheus-Konfigurationsdatei, um den folgenden Messwert aus dem
kube-state-metrics-Dienst zu erfassen:kube_pod_labels
Stellen Sie einen
kube-state-metrics-Dienst in Ihrem Cluster bereit.Mit den folgenden Helm-Befehlen können Sie den neuen Dienst installieren:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo updateErstellen Sie eine
ksm-values.yaml-Datei mit folgendem Inhalt:fullnameOverride: vpa-kube-state-metrics metricAllowlist: - kube_pod_labels metricLabelsAllowlist: - "pods=[*]"Installieren Sie ein Helm-Diagramm basierend auf der Wertedatei aus dem vorherigen Schritt:
helm install vpa-ksm prometheus-community/kube-state-metrics \ -f ksm-values.yaml --namespace kube-systemFügen Sie der Prometheus-Konfigurationsdatei die folgenden Zeilen hinzu, um den Messwert
kube_pod_labelsaus dem installiertenkube-state-metrics-Dienst zu erfassen:- job_name: 'kube-state-metrics' static_configs: - targets: ['vpa-kube-state-metrics.kube-system.svc.cluster.local:8080'] metric_relabel_configs: - source_labels: [ __name__ ] regex: 'kube_pod_labels' action: keep
Prometheus aktivieren und verwenden
Das vertikale Pod-Autoscaling unterstützt sowohl die Basisauthentifizierung als auch die Authentifizierung mit Bearertokens für die Verbindung zu Prometheus. Wenn Sie die Authentifizierung verwenden, müssen Sie im Clusternamespace ein Secret mit den erforderlichen Anmeldedaten erstellen. Der Controller leitet dieses Secret an den Zielcluster weiter und stellt es als Volume oder Umgebungsvariable im Empfehlungs-Pod bereit. Sie können Prometheus auch ohne Authentifizierung verwenden.
Wenn Sie Ihre eigene Prometheus-Instanz mit vertikalem Pod-Autoscaling aktivieren und verwenden möchten, müssen Sie den Abschnitt verticalPodAutoscaling in Ihrer Clusterspezifikation mit Details für die Verbindung zu Ihrer Prometheus-Instanz konfigurieren.
Hier sehen Sie ein Beispiel für die Konfiguration in der Clusterspezifikation zur Verwendung mit einem Bearertoken:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
preview.baremetal.cluster.gke.io/vertical-pod-autoscaler: enable
spec:
# ... other existing cluster configurations ...
verticalPodAutoscaling:
# ... other vertical Pod autoscaling configurations ...
# Add this new section to configure the vpa to use prometheus using bearer token authentication as history provider
prometheus:
url: "http://prometheus.prometheus.monitoring.svc.cluster.local:9090"
auth:
bearerTokenAuth:
name: prom-bearer-creds
key: bearertoken
So aktivieren Sie Prometheus für die Verwendung mit vertikalem Pod-Autoscaling:
Achten Sie darauf, dass Ihre Prometheus-Instanz so eingerichtet ist, dass die erforderlichen Messwerte erfasst werden, wie unter Voraussetzungen für die Verwendung von Prometheus mit vertikalem Pod-Autoscaling beschrieben.
Aktualisieren Sie die benutzerdefinierte Cluster-Ressource
spec, sodass im FeldverticalPodAutoscaling.prometheusdie Verbindungseinstellungen für Ihren Prometheus-Server angegeben sind.Fügen Sie
urldem Abschnittprometheushinzu und legen Sie ihn auf den vollqualifizierten Domainnamen (Fully Qualified Domain Name, FQDN) für die Verbindung zu Prometheus innerhalb des Clusters fest:spec: # ... other existing cluster configurations ... verticalPodAutoscaling: # ... other vpa configurations ... # Add this new section to configure the vpa to use prometheus as history provider prometheus: # Required: The URL of the Prometheus server url: "http://prometheus.prometheus.svc.cluster.local:9090"Geben Sie die Verbindungsdetails an:
Vertikales Pod-Autoscaling unterstützt die folgenden drei Verbindungsmethoden:
- Keine Authentifizierung
- Basisauthentifizierung (Nutzername, Passwort)
Inhabertoken-Authentifizierung
Keine Authentifizierung
Wenn für Ihre Prometheus-Instanz keine Authentifizierung erforderlich ist, sind Sie fertig. Der Abschnitt
prometheusdarf nur ein Feldurlenthalten.Basisauthentifizierung
So geben Sie die Basisauthentifizierung für Prometheus an:
Erstellen Sie ein Secret, das einen Nutzernamen und ein Passwort im Abschnitt
stringDataund in der Annotationbaremetal.cluster.gke.io/mark-source: "true"enthält.Das folgende Beispiel zeigt ein Secret, das die einfache Authentifizierung unterstützt:
apiVersion: v1 kind: Secret metadata: name: prom-basic-creds namespace: <cluster-namespace> annotations: baremetal.cluster.gke.io/mark-source: "true" type: Opaque stringData: username: admin password: pwdDie Annotation ist erforderlich, damit das Quell-Secret und das Secret im Zielcluster immer synchronisiert sind. Das Secret wird aktualisiert, wenn das Quell-Secret aktualisiert wird.
Aktualisieren Sie den Abschnitt
prometheus.auth.basicAuthder Clusterspezifikation, damit er auf den Nutzernamen und das Passwort aus dem Felddataim Secret verweist.Das folgende Beispiel zeigt einen
basicAuth-Abschnitt, der auf den Nutzernamen und das Passwort im Secret aus dem vorherigen Schritt verweist:# ... other vpa configurations ... prometheus: url: "http://prometheus.prometheus.svc.cluster.local:9090" auth: basicAuth: usernameRef: name: prom-basic-creds key: username passwordRef: name: prom-basic-creds key: passwordDer Nutzername und das Passwort müssen sich im selben Secret befinden. Die Schlüssel müssen gültige Schlüssel aus dem Feld
datades Secrets sein.
Die Prometheus-Instanz sollte als Verlaufsanbieter für das vertikale Pod-Autoscaling fungieren, sobald die benutzerdefinierte Clusterressource aktualisiert wird.
Inhabertoken-Authentifizierung
Gehen Sie so vor, um die Bearer-Token-Authentifizierung für Prometheus anzugeben:
Erstellen Sie ein Secret, das ein Bearer-Token im Abschnitt
stringDataund die Annotationbaremetal.cluster.gke.io/mark-source: "true"enthält.Das folgende Beispiel zeigt ein Secret, das die Bearer-Token-Authentifizierung unterstützt:
apiVersion: v1 kind: Secret metadata: name: prom-bearer-creds namespace: <cluster-namespace> annotations: baremetal.cluster.gke.io/mark-source: "true" type: Opaque stringData: bearertoken: "SAMPLE_TOKEN"Die Annotation ist erforderlich, damit das Quell-Secret und das Secret im Zielcluster immer synchronisiert sind. Das Secret wird aktualisiert, wenn das Quell-Secret aktualisiert wird.
Aktualisieren Sie den Abschnitt
prometheus.auth.bearerTokenAuthder Clusterspezifikation, um auf das Bearer-Token aus dem Felddataim Secret zu verweisen.Das folgende Beispiel zeigt einen
bearerTokenAuth-Abschnitt, der auf das Bearer-Token im Secret aus dem vorherigen Schritt verweist:# ... other vertical Pod autoscaling configurations ... prometheus: url: "http://prometheus.prometheus.svc.cluster.local:9090" auth: bearerTokenAuth: name: prom-bearer-creds key: bearertokenDer Schlüssel muss ein gültiger Schlüssel aus dem Feld
datades Secrets sein.
Die Prometheus-Instanz sollte als Verlaufsanbieter für das vertikale Pod-Autoscaling fungieren, sobald die benutzerdefinierte Clusterressource aktualisiert wird.
Verwendung von Prometheus deaktivieren
Wenn Sie die Verwendung von Prometheus mit vertikalem Pod-Autoscaling deaktivieren möchten, entfernen Sie den Abschnitt prometheus aus dem Abschnitt verticalPodAutoscaling der benutzerdefinierten Clusterressource.
Vertikales Pod-Autoscaling deaktivieren
Deaktivieren Sie das vertikale Pod-Autoscaling, indem Sie die benutzerdefinierten Ressourcen und die Konfiguration aus Ihrem Cluster entfernen:
Löschen Sie alle benutzerdefinierten
VerticalPodAutoscaler-Ressourcen, die Sie erstellt haben.Ändern Sie die benutzerdefinierte Clusterressource und entfernen Sie den gesamten Abschnitt
verticalPodAutoscalingausspec.Sie können die benutzerdefinierte Clusterressource direkt bearbeiten oder die Clusterkonfigurationsdatei ändern und
bmctl updateverwenden.Entfernen Sie die Annotation
preview.baremetal.cluster.gke.io/vertical-pod-autoscaleraus der benutzerdefinierten Clusterressource.
Beschränkungen
Beachten Sie die folgenden Einschränkungen, wenn Sie vertikales Pod-Autoscaling 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.
- Für das Updater-Tool sind mindestens zwei Pod-Replikate für Deployments erforderlich, um Pods durch überarbeitete Ressourcenwerte zu ersetzen.
- Der Updater aktualisiert Pods, die aufgrund von Out-Of-Memory-Fehlern (OOM) in einer Crash-Schleife hängen, nicht schnell.
- Die
InPlaceOrRecreate-Aktualisierungsrichtlinie für Pods ist eine Alphafunktion im vertikalen Pod-Autoscaling. Es wird versucht, Updates direkt durchzuführen. Wenn das nicht möglich ist, wird der Pod neu erstellt.