Come faccio a configurare Kubernetes Metrics Server e Horizontal Pod Autoscaler su Amazon EKS?
Desidero configurare Kubernetes Metrics Server e Horizontal Pod Autoscaler (HPA) su Amazon Elastic Kubernetes Service (Amazon EKS).
Risoluzione
Configura il tuo ambiente
- Crea un'istanza Amazon Elastic Compute Cloud (Amazon EC2).
- Installa kubectl sulla tua istanza EC2.
- Installa e configura l'ultima versione dell'Interfaccia della linea di comando AWS (AWS CLI) sulla tua istanza EC2.
- Configura il tuo file kubeconfig in modo che punti al cluster Amazon EKS.
Installa Kubernetes Metrics Server
1. Per installare Metrics Server, esegui il seguente comando:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
2. Per confermare che Metrics Server sia in esecuzione, esegui il seguente comando:
kubectl get pods -n kube-system -l k8s-app=metrics-server
Dovresti visualizzare un output simile al seguente:
kubectl get pods -n kube-system -l k8s-app=metrics-server metrics-server-85cc795fbf-79d72 1/1 Running 0 22s
Crea un'implementazione php-apache e un servizio
1. Per creare un'implementazione php-apache, esegui il seguente comando:
kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example
2. Per impostare le richieste della CPU, esegui il seguente comando:
kubectl patch deployment php-apache -p='{"spec":{"template":{"spec":{"containers":[{"name":"hpa-example","resources":{"requests":{"cpu":"200m"}}}]}}}}'
Importante: se non imposti correttamente il valore per cpu, la metrica di utilizzo della CPU per il pod non è definita e l'HPA non può essere dimensionato.
3. Per esporre l'implementazione come servizio, esegui il comando seguente:
kubectl create service clusterip php-apache --tcp=80
4. Per creare un HPA, esegui il seguente comando:
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
5. Per confermare che l'HPA è stato creato, esegui il seguente comando:
kubectl get hpa
6. Per creare un pod per connettersi all'implementazione creata in precedenza, esegui il seguente comando:
kubectl run -i --tty load-generator --image=busybox /bin/sh
7. Per testare un carico sul pod nello spazio dei nomi che hai usato nel passaggio 1, esegui il seguente script:
while true; do wget -q -O- http://php-apache; done
Nota: per uscire dal ciclo while e dalla sessione tty del pod del generatore di carico, usa CTRL + C per annullare il ciclo. Quindi, usa CTRL + D per uscire dalla sessione.
8. Per vedere come l'HPA dimensiona il pod in base alle metriche di utilizzo della CPU, esegui il seguente comando (preferibilmente da un'altra finestra terminale):
kubectl get hpa -w
Metrics Server è ora attivo e funzionante e puoi utilizzarlo per ottenere metriche basate sulle risorse.
9. Per ripulire le risorse utilizzate per testare l'HPA, esegui i seguenti comandi:
kubectl delete hpa,service,deployment php-apache kubectl delete pod load-generator
Informazioni correlate
Horizontal Pod Autoscaling (sul sito Web di Kubernetes)
Video correlati
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 5 mesi fa