Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Faites évoluer les déploiements de pods avec Horizontal Pod Autoscaler
Le Kubernetes Horizontal Pod Autoscaler
Horizontal Pod Autoscaler est une ressource API standard dans Kubernetes qui nécessite simplement qu'une source de métriques (telle que le serveur de métriques Kubernetes) soit installée sur votre cluster Amazon EKS pour fonctionner. Vous n'avez pas besoin de déployer ou d'installer Horizontal Pod Autoscaler sur votre cluster pour mettre vos applications à l'échelle. Pour plus d'informations, consultez Horizontal Pod Autoscaler
Utilisez cette rubrique pour préparer Horizontal Pod Autoscaler pour votre cluster Amazon EKS et pour vérifier qu'il fonctionne avec un exemple d'application.
Note
Cette rubrique est basée sur la procédure pas à pas de l'autoscaler Horizontal Pod présentée dans la documentation de Kubernetes
-
Vous disposez d'un cluster Amazon EKS existant. Si ce n'est pas le cas, voyezMise en route avec Amazon EKS.
-
Le serveur de métriques Kubernetes est installé. Pour de plus amples informations, veuillez consulter Afficher l'utilisation des ressources avec le serveur Kubernetes Metrics.
-
Vous utilisez un client
kubectl
qui est configuré pour communiquer avec votre cluster Amazon EKS.
Exécution d'une application de test du Horizontal Pod Autoscaler
Dans cette section, vous déployez un exemple d'application pour vérifier que Horizontal Pod Autoscale) fonctionne.
Note
Cet exemple est basé sur la procédure pas à pas de l'autoscaler Horizontal Pod présentée dans la documentation de Kubernetes
-
Déployez une application simple de serveur web Apache avec la commande suivante.
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml
Ce Pod de serveur Web Apache est doté d'une limite de processeur de 500 millicpu et il fonctionne sur le port 80.
-
Créez une ressource Horizontal Pod Autoscaler pour le déploiement
php-apache
.kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
Cette commande crée un autoscaler qui cible 50 % d'utilisation du processeur pour le déploiement, avec un minimum d'un pod et un maximum de dix pods. Lorsque la charge moyenne du processeur est inférieure à 50 %, l'autoscaler essaie de réduire le nombre de pods dans le déploiement à un minimum d'un. Lorsque la charge est supérieure à 50 %, l'autoscaler essaie d'augmenter le nombre de pods dans le déploiement, jusqu'à un maximum de dix. Pour plus d'informations, voir Comment HorizontalPodAutoscaler fonctionne un
dans la documentation de Kubernetes. -
Décrivez l'autoscaler avec la commande suivante pour en afficher les détails.
kubectl get hpa
L'exemple qui suit illustre un résultat.
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 10 1 51s
Comme vous pouvez le constater, la charge actuelle du processeur est due
0%
au fait qu'il n'y a pas encore de charge sur le serveur. Le nombre de pods a déjà atteint sa limite la plus basse (un), il ne peut donc pas être augmenté. -
Créez une charge pour le serveur Web en exécutant un conteneur.
kubectl run -i \ --tty load-generator \ --rm --image=busybox \ --restart=Never \ -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
-
Pour observer l'augmentation du déploiement, exécutez régulièrement la commande suivante dans un terminal distinct de celui dans lequel vous avez exécuté l'étape précédente.
kubectl get hpa php-apache
L'exemple qui suit illustre un résultat.
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 250%/50% 1 10 5 4m44s
L'augmentation du nombre de réplicas peut prendre plus d'une minute. Tant que le pourcentage de CPU réel est supérieur au pourcentage cible, le nombre de réplicas augmente jusqu'à 10. Dans ce cas, c'est le cas
250%
, donc le nombreREPLICAS
continue d'augmenter.Note
L'atteinte du nombre de réplicas maximum peut prendre un certain temps. Si seulement 6 répliques, par exemple, sont nécessaires pour que la charge du processeur reste égale ou inférieure à 50 %, la charge ne dépassera pas 6 répliques.
-
Arrêtez la charge. Dans la fenêtre du terminal dans laquelle vous générez le chargement, arrêtez le chargement en maintenant les
Ctrl+C
touches enfoncées. Vous pouvez voir les répliques revenir à 1 en exécutant à nouveau la commande suivante dans le terminal dans lequel vous observez la mise à l'échelle.kubectl get hpa
L'exemple qui suit illustre un résultat.
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 10 1 25m
Note
Le délai par défaut pour la réduction d'échelle est de cinq minutes. Par conséquent, un certain temps s'écoule avant de voir le nombre de réplicas atteindre à nouveau 1, même si le pourcentage de CPU actuel est de 0 %. Le délai est modifiable. Pour plus d'informations, consultez Horizontal Pod Autoscaler
dans la documentation Kubernetes. -
Lorsque vous avez terminé de tester votre exemple d'application, supprimez les ressources
php-apache
.kubectl delete deployment.apps/php-apache service/php-apache horizontalpodautoscaler.autoscaling/php-apache