Come faccio a configurare Kubernetes Metrics Server e Horizontal Pod Autoscaler su Amazon EKS?

3 minuti di lettura
0

Desidero configurare Kubernetes Metrics Server e Horizontal Pod Autoscaler (HPA) su Amazon Elastic Kubernetes Service (Amazon EKS).

Risoluzione

Configura il tuo ambiente

  1. Crea un'istanza Amazon Elastic Compute Cloud (Amazon EC2).
  2. Installa kubectl sulla tua istanza EC2.
  3. Installa e configura l'ultima versione dell'Interfaccia della linea di comando AWS (AWS CLI) sulla tua istanza EC2.
  4. 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)

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa