Hilf mit, diese Seite zu verbessern
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Passen Sie die Pod-Ressourcen mit Vertical Pod Autoscaler an
Der Kubernetes Vertical Pod Autoscaler
-
Sie haben einen Amazon EKS-Cluster Wenn nicht, sehen Sie nachErste Schritte mit Amazon EKS.
-
Sie haben den Kubernetes-Metrik-Server installiert. Weitere Informationen finden Sie unter Ressourcennutzung mit dem Kubernetes Metrics Server anzeigen.
-
Sie verwenden einen
kubectl
-Client, der für die Kommunikation mit Ihrem Amazon EKS-Cluster konfiguriert ist. -
OpenSSL
1.1.1
oder höher ist auf Ihrem Gerät installiert.
Bereitstellen des Vertical Pod Autoscalers
In diesem Abschnitt stellen Sie den Vertical Pod Autoscaler für Ihren Cluster bereit.
-
Öffnen Sie ein Terminalfenster und navigieren Sie zu einem Verzeichnis, in das Sie den Vertical Pod Autoscaler-Quellcode herunterladen möchten.
-
Klonen Sie das GitHub Kubernetes/Autoscaler-Repository
. git clone https://github.com/kubernetes/autoscaler.git
-
Wechseln Sie in das
vertical-pod-autoscaler
-Verzeichnis.cd autoscaler/vertical-pod-autoscaler/
-
(Optional) Wenn Sie bereits eine andere Version des Vertical Pod Autoscalers bereitgestellt haben, entfernen Sie ihn mit dem folgenden Befehl.
./hack/vpa-down.sh
-
Wenn Ihre Knoten keinen Internetzugang zur
registry.k8s.io
Container-Registry haben, müssen Sie die folgenden Bilder abrufen und in Ihr eigenes privates Repository übertragen. Weitere Informationen zum Abrufen und Verschieben der Images in ein eigenes privates Repository finden Sie unter Kopieren eines Container-Images von einem Repository in ein anderes.registry.k8s.io/autoscaling/vpa-admission-controller:0.10.0 registry.k8s.io/autoscaling/vpa-recommender:0.10.0 registry.k8s.io/autoscaling/vpa-updater:0.10.0
Wenn Sie die Bilder in ein privates Amazon ECR-Repository übertragen, ersetzen Sie sie
registry.k8s.io
in den Manifesten durch Ihre Registrierung. Ersetzen Sie111122223333
durch Ihre Konto-ID.region-code
Ersetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet. Beim folgenden Befehl wird davon ausgegangen, dass Sie Ihr Repository genauso benannt haben wie das Repository im Manifest. Wenn Sie Ihrem Repository einen anderen Namen gegeben haben, müssen Sie ihn ebenfalls ändern.sed -i.bak -e 's/registry.k8s.io/111122223333.dkr.ecr.region-code.amazonaws.com/' ./deploy/admission-controller-deployment.yaml sed -i.bak -e 's/registry.k8s.io/111122223333.dkr.ecr.region-code.amazonaws.com/' ./deploy/recommender-deployment.yaml sed -i.bak -e 's/registry.k8s.io/111122223333.dkr.ecr.region-code.amazonaws.com/' ./deploy/updater-deployment.yaml
-
Stellen Sie den Vertical Pod Autoscaler mit dem folgenden Befehl für Ihren Cluster bereit.
./hack/vpa-up.sh
-
Stellen Sie sicher, dass die Vertical Pod Autoscaler-Pods erfolgreich erstellt wurden.
kubectl get pods -n kube-system
Eine Beispielausgabe sieht wie folgt aus.
NAME READY STATUS RESTARTS AGE [...] metrics-server-8459fc497-kfj8w 1/1 Running 0 83m vpa-admission-controller-68c748777d-ppspd 1/1 Running 0 7s vpa-recommender-6fc8c67d85-gljpl 1/1 Running 0 8s vpa-updater-786b96955c-bgp9d 1/1 Running 0 8s
Testen der Installation von Vertical Pod Autoscaler
In diesem Abschnitt stellen Sie eine Beispielanwendung bereit, um zu überprüfen, ob der Vertical Pod Autoscaler funktioniert.
-
Stellen Sie das Vertical Pod Autoscaler-Beispiel
hamster.yaml
mit dem folgenden Befehl bereit.kubectl apply -f examples/hamster.yaml
-
Holen Sie sich die Pods aus der
hamster
Beispielanwendung.kubectl get pods -l app=hamster
Eine Beispielausgabe sieht wie folgt aus.
hamster-c7d89d6db-rglf5 1/1 Running 0 48s hamster-c7d89d6db-znvz5 1/1 Running 0 48s
-
Beschreiben Sie einen der Pods, um ihn anzusehen,
cpu
undmemory
reservieren Sie ihn.c7d89d6db-rglf5
Ersetzen Sie ihn durch einen der in Ihrer Ausgabe aus dem vorherigen Schritt IDs zurückgegebenen.kubectl describe pod hamster-c7d89d6db-rglf5
Eine Beispielausgabe sieht wie folgt aus.
[...] Containers: hamster: Container ID: docker://e76c2413fc720ac395c33b64588c82094fc8e5d590e373d5f818f3978f577e24 Image: registry.k8s.io/ubuntu-slim:0.1 Image ID: docker-pullable://registry.k8s.io/ubuntu-slim@sha256:b6f8c3885f5880a4f1a7cf717c07242eb4858fdd5a84b5ffe35b1cf680ea17b1 Port: <none> Host Port: <none> Command: /bin/sh Args: -c while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done State: Running Started: Fri, 27 Sep 2019 10:35:16 -0700 Ready: True Restart Count: 0 Requests: cpu: 100m memory: 50Mi [...]
Sie können sehen, dass der ursprüngliche Pod 100 Milli-CPU an CPU und 50 Mebibyte Speicher reserviert. In dieser Beispielanwendung sind 100 Millicpu weniger, als der Pod zum Ausführen benötigt, weshalb er CPU-eingeschränkt ist. Außerdem reserviert er viel weniger Arbeitsspeicher, als er benötigt. Bei der
vpa-recommender
Bereitstellung von Vertical Pod Autoscaler werden die Hamster-Pods analysiert, um festzustellen, ob die CPU- und Speicheranforderungen angemessen sind. Wenn Anpassungen erforderlich sind, werden die Pods mitvpa-updater
aktualisierten Werten neu gestartet. -
Warten Sie,
vpa-updater
bis der neue Hamster-Pods gestartet hat. Dies sollte ein oder zwei Minuten dauern. Sie können die Pods mit dem folgenden Befehl überwachen.Anmerkung
Wenn Sie sich nicht sicher sind, ob ein neuer Pod gestartet wurde, vergleichen Sie die Pod-Namen mit Ihrer vorherigen Liste. Wenn der neue Pod gestartet wird, siehst du einen neuen Pod-Namen.
kubectl get --watch Pods -l app=hamster
-
Wenn ein neuer Hamster-Pod gestartet wird, beschreibe ihn und sieh dir die aktualisierten CPU- und Speicherreservierungen an.
kubectl describe pod hamster-c7d89d6db-jxgfv
Eine Beispielausgabe sieht wie folgt aus.
[...] Containers: hamster: Container ID: docker://2c3e7b6fb7ce0d8c86444334df654af6fb3fc88aad4c5d710eac3b1e7c58f7db Image: registry.k8s.io/ubuntu-slim:0.1 Image ID: docker-pullable://registry.k8s.io/ubuntu-slim@sha256:b6f8c3885f5880a4f1a7cf717c07242eb4858fdd5a84b5ffe35b1cf680ea17b1 Port: <none> Host Port: <none> Command: /bin/sh Args: -c while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done State: Running Started: Fri, 27 Sep 2019 10:37:08 -0700 Ready: True Restart Count: 0 Requests: cpu: 587m memory: 262144k [...]
In der vorherigen Ausgabe können Sie feststellen, dass sich die
cpu
-Reservierung auf 587 Millicpu erhöht hat, was mehr als dem Fünffachen des ursprünglichen Werts entspricht. Dermemory
wurde auf 262.144 Kilobyte erhöht, was etwa 250 Mebibyte bzw. dem Fünffachen des ursprünglichen Werts entspricht. Dieser Pod verfügte über unzureichende Ressourcen, und der Vertical Pod Autoscaler korrigierte die Schätzung mit einem viel geeigneteren Wert. -
Beschreiben Sie die
hamster-vpa
-Ressource, um die neue Empfehlung anzuzeigen.kubectl describe vpa/hamster-vpa
Eine Beispielausgabe sieht wie folgt aus.
Name: hamster-vpa Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"autoscaling.k8s.io/v1beta2","kind":"VerticalPodAutoscaler","metadata":{"annotations":{},"name":"hamster-vpa","namespace":"d... API Version: autoscaling.k8s.io/v1beta2 Kind: VerticalPodAutoscaler Metadata: Creation Timestamp: 2019-09-27T18:22:51Z Generation: 23 Resource Version: 14411 Self Link: /apis/autoscaling.k8s.io/v1beta2/namespaces/default/verticalpodautoscalers/hamster-vpa UID: d0d85fb9-e153-11e9-ae53-0205785d75b0 Spec: Target Ref: API Version: apps/v1 Kind: Deployment Name: hamster Status: Conditions: Last Transition Time: 2019-09-27T18:23:28Z Status: True Type: RecommendationProvided Recommendation: Container Recommendations: Container Name: hamster Lower Bound: Cpu: 550m Memory: 262144k Target: Cpu: 587m Memory: 262144k Uncapped Target: Cpu: 587m Memory: 262144k Upper Bound: Cpu: 21147m Memory: 387863636 Events: <none>
-
Wenn Sie mit dem Experimentieren mit der Beispielanwendung fertig sind, können Sie sie mit dem folgenden Befehl löschen.
kubectl delete -f examples/hamster.yaml