

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

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.

Um zu diesem Benutzerhandbuch beizutragen, 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.

# Pod-Ressourcen mit Vertical Pod Autoscaler anpassen
<a name="vertical-pod-autoscaler"></a>

Der Kubernetes [Vertical Pod Autoscaler](https://github.com/kubernetes/autoscaler/tree/master/vertical-pod-autoscaler) passt die CPU- und Speicherreservierungen für Ihre Pods automatisch an, um Ihre Anwendungen auf die „richtige Größe“ zu skalieren. Diese Anpassung kann die Cluster-Ressourcennutzung verbessern und CPU und Arbeitsspeicher für andere Pods freigeben. In diesem Thema können Sie den Vertical Pod Autoscaler für Ihren Cluster bereitstellen und überprüfen, ob er funktioniert.
+ Sie haben einen Amazon EKS-Cluster Falls nicht, finden Sie weitere Informationen unter [Erste Schritte mit Amazon EKS](getting-started.md).
+ Sie haben den Kubernetes-Metrik-Server installiert. Weitere Informationen finden Sie unter [Anzeigen der Ressourcennutzung mit Kubernetes Metrics Server](metrics-server.md).
+ Sie verwenden einen `kubectl`-Client, der [für die Kommunikation mit Ihrem Amazon EKS-Cluster konfiguriert](getting-started-console.md#eks-configure-kubectl) ist.
+ OpenSSL `1.1.1` oder höher ist auf Ihrem Gerät installiert.

## Bereitstellen des Vertical Pod Autoscalers
<a name="vpa-deploy"></a>

In diesem Abschnitt stellen Sie den Vertical Pod Autoscaler für Ihren Cluster bereit.

1. Öffnen Sie ein Terminalfenster und navigieren Sie zu einem Verzeichnis, in das Sie den Vertical Pod Autoscaler-Quellcode herunterladen möchten.

1. Klonen Sie das GitHub-Repository [kubernetes/autoscaler](https://github.com/kubernetes/autoscaler).

   ```
   git clone https://github.com/kubernetes/autoscaler.git
   ```

1. Wechseln Sie in das `vertical-pod-autoscaler`-Verzeichnis.

   ```
   cd autoscaler/vertical-pod-autoscaler/
   ```

1. (Optional) Wenn Sie bereits eine andere Version des Vertical Pod Autoscalers bereitgestellt haben, entfernen Sie ihn mit dem folgenden Befehl.

   ```
   ./hack/vpa-down.sh
   ```

1. Wenn Ihre Knoten keinen Internetzugriff auf die Container-Registry `registry.k8s.io` haben, müssen Sie die folgenden Images abrufen und in ein eigenes privates Repository verschieben. 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](copy-image-to-repository.md).

   ```
   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 Images in ein privates Amazon-ECR-Repository verschieben, ersetzen Sie `registry.k8s.io` in den Manifesten durch Ihr Registry. Ersetzen Sie {{111122223333}} durch Ihre Konto-ID. Ersetzen Sie den {{region-code}} 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 das Repository anders benannt haben, müssen Sie es 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
   ```

1. Stellen Sie den Vertical Pod Autoscaler mit dem folgenden Befehl für Ihren Cluster bereit.

   ```
   ./hack/vpa-up.sh
   ```

1. Überprüfen Sie, ob 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
<a name="vpa-sample-app"></a>

In diesem Abschnitt stellen Sie eine Beispielanwendung bereit, um zu überprüfen, ob der Vertical Pod Autoscaler funktioniert.

1. Stellen Sie das Vertical Pod Autoscaler-Beispiel `hamster.yaml` mit dem folgenden Befehl bereit.

   ```
   kubectl apply -f examples/hamster.yaml
   ```

1. Rufen Sie die Pods aus der `hamster`-Beispielanwendung ab.

   ```
   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
   ```

1. Beschreiben Sie einen der Pods, um die zugehörige `cpu`- und `memory`-Reservierung anzuzeigen. Ersetzen Sie {{c7d89d6db-rglf5}} durch eine der IDs, die in der Ausgabe im vorherigen Schritt zurückgegeben wurden.

   ```
   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 CPU und 50 Mebibyte Speicher reserviert. Für diese Beispielanwendung ist 100 Milli-CPU weniger als der Pod zum Ausführen benötigt, sodass er CPU-eingeschränkt ist. Außerdem reserviert er viel weniger Arbeitsspeicher, als er benötigt. Die Bereitstellung des Vertical Pod Autoscaler `vpa-recommender` analysiert die Hamster-Pods, um festzustellen, ob die CPU- und Speicheranforderungen angemessen sind. Wenn Anpassungen erforderlich sind, werden die Pods mit aktualisierten Werten aus `vpa-updater` neu geladen.

1. Warten Sie, bis `vpa-updater` neue Hamster-Pods startet. Dies sollte ein oder zwei Minuten dauern. Sie können die Pods mit dem folgenden Befehl überwachen.
**Anmerkung**  
Wenn Sie nicht sicher sind, ob ein neuer Pod gestartet wurde, vergleichen Sie die Pod-Namen mit Ihrer vorherigen Liste. Wenn der neue Pod gestartet wird, wird ein neuer Pod-Name angezeigt.

   ```
   kubectl get --watch Pods -l app=hamster
   ```

1. Wenn ein neuer Hamster-Pod gestartet wird, beschreiben Sie ihn und zeigen Sie 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. Der `memory` wurde auf 262.144 Kilobyte erhöht, was etwa 250 Mebibyte bzw. dem Fünffachen des ursprünglichen Werts entspricht. Diesem Pod standen zu wenige Ressourcen zur Verfügung. Daher hat der Vertical Pod Autoscaler unsere Schätzung mit einem wesentlich geeigneteren Wert korrigiert.

1. 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>
   ```

1. 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
   ```