New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie richte ich Kubernetes Metrics Server und Horizontal Pod Autoscaler auf Amazon EKS ein?
Ich möchte Kubernetes Metrics Server und Horizontal Pod Autoscaler (HPA) auf Amazon Elastic Kubernetes Service (Amazon EKS) einrichten.
Lösung
Ihre Umgebung einrichten
- Erstellen Sie eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance.
- Installieren Sie kubectl auf Ihrer EC2-Instance.
- Installieren und konfigurieren Sie die neueste Version der AWS Command Line Interface (AWS CLI) auf Ihrer EC2-Instance.
- Konfigurieren Sie Ihre kubeconfig-Datei so, dass sie auf den Amazon-EKS-Cluster verweist.
Kubernetes-Metrics-Server erstellen
1. Führen Sie den folgenden Befehl aus, um Metrics Server zu installieren:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
2. Führen Sie den folgenden Befehl aus, um zu bestätigen, dass Metrics Server läuft:
kubectl get pods -n kube-system -l k8s-app=metrics-server
Die Ausgabe sieht in etwa wie folgt aus:
kubectl get pods -n kube-system -l k8s-app=metrics-server metrics-server-85cc795fbf-79d72 1/1 Running 0 22s
Eine PHP-Apache-Bereitstellung und einen Dienst erstellen
1. Führen Sie den folgenden Befehl aus, um eine PHP-Apache-Bereitstellung zu erstellen:
kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example
2. Führen Sie den folgenden Befehl aus, um die CPU-Anfragen festzulegen:
kubectl patch deployment php-apache -p='{"spec":{"template":{"spec":{"containers":[{"name":"hpa-example","resources":{"requests":{"cpu":"200m"}}}]}}}}'
Wichtig: Wenn Sie den Wert für die CPU nicht richtig festlegen, ist die CPU-Auslastungsmetrik für den Pod nicht definiert und der HPA kann nicht skalieren.
3. Führen Sie den folgenden Befehl aus, um die Bereitstellung als Dienst freizugeben:
kubectl create service clusterip php-apache --tcp=80
4. Führen Sie den folgenden Befehl aus, um einen HPA zu erstellen:
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
5. Führen Sie den folgenden Befehl aus, um zu bestätigen, dass der HPA erstellt wurde:
kubectl get hpa
6. Führen Sie den folgenden Befehl aus, um einen Pod zu erstellen, der eine Verbindung zu der zuvor erstellten Bereitstellung herstellt:
kubectl run -i --tty load-generator --image=busybox /bin/sh
7. Führen Sie das folgende Skript aus, um die Auslastung des Pods in dem Namespace zu testen, den Sie in Schritt 1 verwendet haben:
while true; do wget -q -O- http://php-apache; done
Hinweis: Um die While-Schleife und die TTY-Sitzung des Load-Generator-Pods zu beenden, drücken Sie STRG + C, um die Schleife abzubrechen. Verwenden Sie dann STRG + D, um die Sitzung zu beenden.
8. Führen Sie den folgenden Befehl aus (vorzugsweise von einem anderen Terminalfenster aus), um zu sehen, wie der HPA den Pod auf der Grundlage von CPU-Auslastungsmetriken skaliert:
kubectl get hpa -w
Der Metrics Server ist jetzt betriebsbereit und Sie können ihn verwenden, um ressourcenbasierte Metriken abzurufen.
9. Führen Sie die folgenden Befehle aus, um die für das Testen des HPA verwendeten Ressourcen zu bereinigen:
kubectl delete hpa,service,deployment php-apache kubectl delete pod load-generator
Ähnliche Informationen
Horizontales Pod-Autoscaling (auf der Kubernetes-Website)
Ähnliche Videos


Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren