Hinweis
Bevor Sie das Vertikales Pod-Autoscaling konfigurieren, müssen die folgenden Voraussetzungen erfüllt sein:
- Sie haben einen ausgeführten Bare-Metal-Cluster.
- Sie haben
kubectl-Zugriff auf den Cluster. - Der Metrics Server ist im Cluster verfügbar. Bare-Metal-Cluster enthalten standardmäßig den Metrics Server.
Vertikales Pod-Autoscaling aktivieren
Aktivieren Sie das vertikale Pod-Autoscaling in Ihrem Bare-Metal-Cluster, indem Sie eine Vorschau-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 FeldverticalPodAutoscalingeinzufügen 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, übernehmen Sie die Änderungen mit dem folgenden Befehl:
bmctl update cluster -c CLUSTER_NAME --kubeconfig KUBECONFIGErsetzen Sie Folgendes:
CLUSTER_NAME: Der Name Ihres Clusters.KUBECONFIG: Der Pfad der kubeconfig-Datei Ihres Clusters.
Benutzerdefinierte VerticalPodAutoscaler-Ressource erstellen
Nachdem Sie das vertikale Pod-Autoscaling in Ihrem Cluster aktiviert haben, definieren Sie eine benutzerdefinierte VerticalPodAutoscaler-Ressource für bestimmte Arbeitslasten:
Definieren Sie eine
VerticalPodAutoscaler-Ressource im selben Namespace wie die Zielarbeitslast.Diese benutzerdefinierte Ressource gibt mit
targetRefund allen Ressourcenrichtlinien an, auf welche Pods sie 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"]Wenden Sie das
VerticalPodAutoscaler-Manifest mit dem folgenden Befehl an:kubectl apply -f VPA_MANIFEST \ --kubeconfig KUBECONFIGErsetzen Sie Folgendes:
VPA_MANIFEST: Der Pfad derVerticalPodAutoscaler-Manifestdatei.KUBECONFIG: Der Pfad der kubeconfig-Datei des Clusters.
Modi für vertikales Pod-Autoscaling
Das vertikale Pod-Autoscaling funktioniert in verschiedenen Modi, die steuern, wie Ressourcenempfehlungen angewendet werden.
Empfehlungsmodus
Im Empfehlungsmodus installiert das vertikale Pod-Autoscaling die Recommender-Komponente. Diese Komponente analysiert die Ressourcennutzung und veröffentlicht empfohlene Werte für CPU- und Arbeitsspeicheranfragen 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
In diesem Modus werden Pods nicht automatisch aktualisiert. Verwenden Sie diese Empfehlungen, um Ihre Pod-Konfigurationen manuell zu aktualisieren. Dies ist das Standardverhalten, wenn
enableUpdater
nicht festgelegt oder falseist.
Automatischer Aktualisierungsmodus
Wenn Sie
enableUpdater
enableUpdater
auf true setzen, stellen die Lebenszyklus-Controller für Bare-Metal-Cluster zusätzlich zur Recommender-Komponente auch die Updater- und Zulassungscontroller-Komponenten für das vertikale Pod-Autoscaling
bereit. Der Updater überwacht Pods, deren aktuelle Ressourcenanfragen erheblich von den Empfehlungen abweichen.
Die Aktualisierungsrichtlinie in der VerticalPodAutoscaler-Ressource gibt an, wie der Updater die Empfehlungen anwendet. Standardmäßig ist der Aktualisierungsmodus 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 setzen:
apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
name: hamster-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: hamster
resourcePolicy:
updatePolicy:
updateMode: "Initial"
...
Der Updater unterstützt die folgenden fünf Modi:
Auto: Der Updater entfernt den Pod. Der Zulassungscontroller fängt die Erstellungsanfrage für den neuen Pod ab und ändert sie so, dass die vom Recommender empfohlenen CPU- und Arbeitsspeicherwerte 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 entfernt Pods und weist beim Neuerstellen des Pods empfohlene Ressourcenanfragen und -limits zu.InPlaceOrRecreate(Alpha): Der Updater versucht, In-Place-Updates 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 zur In-Place-Größenänderung von Pods.Initial: Der Updater weist Ressourcenanfragen nur beim Erstellen des Pods zu und ändert sie später nie mehr.Off: Der Updater ändert die Ressourcenanforderungen der Pods nicht automatisch. Die Empfehlungen werden berechnet und können imVerticalPodAutoscaler-Objekt eingesehen werden.
Weitere Informationen zur benutzerdefinierten VerticalPodAutoscaler-Ressource finden Sie unter kubectl, um die benutzerdefinierte Ressourcendefinition verticalpodautoscalercheckpoints.autoscaling.k8s.io abzurufen, die im Cluster der Version 1.33.0 oder höher installiert ist.
Im folgenden Beispiel sehen Sie, wie Ressourcenempfehlungen im Abschnitt Status für den Container hamster aussehen können. Das Beispiel zeigt auch ein Ereignis zum Entfernen eines Pods, 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 Arbeitsspeicher-Sparmodus wird der Speicherbedarf der Recommender-Komponente für das vertikale Pod-Autoscaling reduziert. Wenn Sie
enableMemorySaver
auf true setzen, werden vom Empfehlungstool nur Aggregationen für Pods erfasst und berechnet, die
eine übereinstimmende VerticalPodAutoscaler benutzerdefinierte Ressource haben.
Der Nachteil ist, dass es einige Zeit (bis zu 24 Stunden) dauert, bis der Recommender genügend Verlaufsdaten erfasst hat, um genaue Empfehlungen zu geben, wenn Sie eine neue benutzerdefinierte VerticalPodAutoscaler-Ressource für eine vorhandene Arbeitslast erstellen. Dieser Modus ist für die meisten Clustertypen standardmäßig false, für Edge-Cluster jedoch true.
Prometheus als Anbieter für dauerhaften Verlauf verwenden
Standardmäßig speichert die Recommender-Komponente den Verlauf des Ressourcenverbrauchs der im Cluster ausgeführten Arbeitslasten im Arbeitsspeicher und speichert ihren Zustand regelmäßig in einer benutzerdefinierten VerticalPodAutoscalerCheckpoint-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 dauerhaften Verlauf für Daten zum Ressourcenverbrauch verwenden, nämlich Messwerte zur CPU- und Arbeitsspeichernutzung. Wenn diese Integration aktiviert ist, kann der Recommender beim Start oder Neustart den Prometheus-Server abfragen, um langfristige Verlaufsdaten zur Ressourcennutzung für alle verwalteten Pods abzurufen. Durch das Abrufen dieser Daten kann der Recommender seinen internen Zustand sofort mit einem umfangreichen Dataset erstellen, was von Anfang an zu fundierteren und genaueren Empfehlungen führt.
Die Verwendung von Prometheus als Anbieter für dauerhaften Verlauf bietet folgende Vorteile:
Optimierung der Ressourcennutzung:generiert sofort nach dem Start fundierte und genaue Empfehlungen, sodass Sie die Ressourcennutzung des Clusters optimieren können.
Vermeidung von Fehlern wegen unzureichendem Arbeitsspeicher:Mit Prometheus ist es nicht mehr erforderlich, den internen Status des Empfehlungstools in benutzerdefinierten
VerticalPodAutoscalerCheckpoint-Ressourcen zu speichern, wodurch die Arbeitsspeichernutzung von ETCD effizienter wird. Wenn die Empfehlungskomponente neu gestartet wird, gehen die Verlaufsdaten im Arbeitsspeicher verloren. Wenn Sie Prometheus als Anbieter für den Verlauf verwenden, ruft der Recommender beim Neustart Verlaufsdaten aus Prometheus ab. Dadurch ist die benutzerdefinierte RessourceVerticalPodAutoscalerCheckpointnicht mehr erforderlich und ETCD-Arbeitsspeicher wird gespart.
Sie können die Verwendung von Prometheus als Anbieter für dauerhaften Verlauf jederzeit aktivieren und deaktivieren.
Voraussetzungen für die Verwendung von Prometheus mit vertikalem Pod-Autoscaling
Wenn Sie Ihre eigene Prometheus-Instanz als Anbieter für den Verlauf für das vertikale Pod-Autoscaling verwenden möchten, müssen Sie sie so konfigurieren, dass die erforderlichen Messwerte erfasst werden. Dazu sind folgende Schritte erforderlich:
Stellen Sie bei Bedarf den Prometheus-Operator in dem Cluster bereit, für den Sie ihn als Anbieter für dauerhaften Verlauf für das vertikale Pod-Autoscaling verwenden möchten. Weitere Informationen finden Sie unter Prometheus-Operator in Kubernetes bereitstellen und konfigurieren.
Konfigurieren Sie Berechtigungen zum Erfassen von Messwerten.
Damit Prometheus Messwerte aus cAdvisor mithilfe einer Konfigurationsdatei erfassen kann, müssen Sie dem Dienstkonto, das vom Prometheus-Server verwendet wird, zusätzliche Berechtigungen gewähren. Erstellen oder aktualisieren Sie eine
ClusterRole, die diese Regeln enthält, 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 aus cAdvisor zu erfassen:
container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes
In den folgenden Zeilen werden die Details zum Erfassen der 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 Werte-Datei 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 auf Bearertokens basierende Authentifizierung für die Verbindung zu Prometheus. Wenn Sie die Authentifizierung verwenden, müssen Sie im Cluster-Namespace ein Secret mit den erforderlichen Anmeldedaten erstellen. Der Controller leitet dieses Secret an den Zielcluster weiter und stellt es als Volume oder Umgebungsvariable im Pod des Recommenders bereit. Sie können Prometheus auch ohne Authentifizierung verwenden.
Wenn Sie Ihre eigene Prometheus-Instanz mit dem vertikalen 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 ist 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 dem vertikalen 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 Clusterressource
specso, dass im FeldverticalPodAutoscaling.prometheusdie Verbindungseinstellungen für Ihren Prometheus-Server angegeben sind.Fügen Sie die
urldem Abschnittprometheushinzu und legen Sie sie auf den vollqualifizierten Domainnamen (Fully Qualified Domain Name, FQDN) fest, um aus dem Cluster heraus eine Verbindung zu Prometheus herzustellen: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:
Das vertikale Pod-Autoscaling unterstützt die folgenden drei Verbindungsmethoden:
- Keine Authentifizierung
- Basisauthentifizierung (Nutzername, Passwort)
Authentifizierung mit Bearertoken
Keine Authentifizierung
Wenn für Ihre Prometheus-Instanz keine Authentifizierung erforderlich ist, sind Sie fertig. Der Abschnitt
prometheusdarf nur ein Feldurlenthalten.Basisauthentifizierung
Führen Sie die folgenden Schritte aus, um die Basisauthentifizierung für Prometheus anzugeben:
Erstellen Sie ein Secret, das im
stringDataAbschnitt einen Nutzernamen und ein Passwort sowie diebaremetal.cluster.gke.io/mark-source: "true"Annotation enthält.Das folgende Beispiel zeigt ein Secret, das die Basisauthentifizierung 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, um sicherzustellen, dass das Quell-Secret und das Secret im Zielcluster immer synchron sind. Das Secret wird aktualisiert, wenn das Quell-Secret aktualisiert wird.
Aktualisieren Sie den Abschnitt
prometheus.auth.basicAuthder Clusterspezifikation, um auf den Nutzernamen und das Passwort aus dem Felddataim Secret zu verweisen.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 Bereitsteller für den Verlauf für das vertikale Pod-Autoscaling funktionieren, wenn die benutzerdefinierte Clusterressource aktualisiert wird.
Authentifizierung mit Bearertoken
Führen Sie die folgenden Schritte aus, um die Authentifizierung mit Bearertoken für Prometheus anzugeben:
Erstellen Sie ein Secret, das im
stringDataAbschnitt ein Bearertoken und diebaremetal.cluster.gke.io/mark-source: "true"Annotation enthält.Das folgende Beispiel zeigt ein Secret, das die Authentifizierung mit Bearertoken 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, um sicherzustellen, dass das Quell-Secret und das Secret im Zielcluster immer synchron sind. Das Secret wird aktualisiert, wenn das Quell-Secret aktualisiert wird.
Aktualisieren Sie den Abschnitt
prometheus.auth.bearerTokenAuthder Clusterspezifikation, um auf das Bearertoken aus dem Felddataim Secret zu verweisen.Das folgende Beispiel zeigt einen
bearerTokenAuth-Abschnitt, der auf das Bearertoken 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 Anbieter für den Verlauf für das vertikale Pod-Autoscaling funktionieren, wenn die benutzerdefinierte Clusterressource aktualisiert wird.
Verwendung von Prometheus deaktivieren
Wenn Sie die Verwendung von Prometheus mit dem vertikalen 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
verticalPodAutoscalingaus derspec.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 das Vertikales Pod-Autoscaling verwenden:
- Das vertikale Pod-Autoscaling ist aufgrund der eingeschränkten Sichtbarkeit der tatsächlichen Arbeitsspeichernutzung der Arbeitslast noch nicht bereit für die Verwendung mit JVM-Arbeitslasten.
- Der Updater benötigt mindestens zwei Pod-Replikate für Deployments, um Pods durch überarbeitete Ressourcenwerte zu ersetzen.
- Der Updater aktualisiert Pods, die aufgrund von Fehlern wegen unzureichendem Arbeitsspeicher in einer Crash-Schleife sind, nicht schnell.
- Die Aktualisierungsrichtlinie
InPlaceOrRecreatefür Pods ist eine Alphafunktion im vertikalen Pod-Autoscaling. Sie versucht, In-Place-Updates durchzuführen, kann aber auf das Neuerstellen des Pods zurückgreifen, wenn In-Place-Updates nicht möglich sind.
Nächste Schritte
- Informationen zu Budgets für Pod-Störungen