Comment configurer Kubernetes Metrics Server et Horizontal Pod Autoscaler sur Amazon EKS ?

Lecture de 3 minute(s)
0

Je souhaite configurer Kubernetes Metrics Server et Horizontal Pod Autoscaler (HPA) sur Amazon Elastic Kubernetes Service (Amazon EKS).

Résolution

Configurer votre environnement

  1. Créez une instance Amazon Elastic Compute Cloud (Amazon EC2).
  2. Installez kubectl sur votre instance EC2.
  3. Installez et configurez la dernière version de l'interface de la ligne de commande AWS (AWS CLI) sur votre instance EC2.
  4. Configurez votre fichier kubeconfig pour qu'il pointe vers le cluster Amazon EKS.

Créer un Kubernetes Metrics Server

1.    Pour installer Metrics Server, exécutez la commande suivante :

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

2.    Pour vérifier que Metrics Server est en cours d'exécution, exécutez la commande suivante :

kubectl get pods -n kube-system -l k8s-app=metrics-server

La sortie ressemble à ce qui suit :

kubectl get pods -n kube-system -l k8s-app=metrics-server
metrics-server-85cc795fbf-79d72   1/1     Running   0          22s

Créer un déploiement php-apache et un service

1.    Pour créer un déploiement php-apache, exécutez la commande suivante :

kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example

2.    Pour définir les demandes de CPU, exécutez la commande suivante :

kubectl patch deployment php-apache -p='{"spec":{"template":{"spec":{"containers":[{"name":"hpa-example","resources":{"requests":{"cpu":"200m"}}}]}}}}'

Important : Si vous ne définissez pas correctement la valeur du cpu, la métrique d'utilisation du CPU pour le pod n'est pas définie et le HPA ne peut pas procéder à la mise à l'échelle.

3.    Pour exposer le déploiement en tant que service, exécutez la commande suivante :

kubectl create service clusterip php-apache --tcp=80

4.    Pour créer un HPA, exécutez la commande suivante :

kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

5.    Pour confirmer que le HPA a bien été créé, exécutez la commande suivante :

kubectl get hpa

6.    Pour créer un pod afin de vous connecter au déploiement que vous avez créé précédemment, exécutez la commande suivante :

kubectl run -i --tty load-generator --image=busybox /bin/sh

7.    Pour tester une charge sur le pod dans l'espace de noms que vous avez utilisé à l'étape 1, exécutez le script suivant :

while true; do wget -q -O- http://php-apache; done

Remarque : Pour quitter la boucle while et la session tty du pod générateur de charge, utilisez CTRL + C afin d'annuler la boucle. Utilisez ensuite CTRL + D pour quitter la session.

8.    Pour voir comment le HPA fait évoluer le pod en fonction des métriques d'utilisation du CPU, exécutez la commande suivante (de préférence depuis une autre fenêtre de terminal) :

kubectl get hpa -w

Le Metrics Server est désormais opérationnel, et vous pouvez l'utiliser pour obtenir des métriques basées sur les ressources.

9.    Afin de nettoyer les ressources utilisées pour tester le HPA, exécutez les commandes suivantes :

kubectl delete hpa,service,deployment php-apache
kubectl delete pod load-generator

Informations connexes

Mise à l'échelle horizontale automatique du Pod (sur le site Web Kubernetes)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an