18.9. Tutoriel: Mise à l’échelle d’une application
18.9.1. La mise à l’échelle Copier lienLien copié sur presse-papiers!
Il est possible d’adapter manuellement ou automatiquement vos pods à l’aide de l’Autoscaler Horizontal Pod (HPA). Il est également possible de mettre à l’échelle vos nœuds de cluster.
18.9.1.1. Evoluation manuelle des pod Copier lienLien copié sur presse-papiers!
Il est possible de mettre à l’échelle manuellement les pods de votre application en utilisant l’une des méthodes suivantes:
- Changer votre définition de ReplicaSet ou de déploiement
- En utilisant la ligne de commande
- À l’aide de la console web
Cet atelier commence par l’utilisation d’un seul pod pour le microservice. En définissant une réplique de 1 dans votre définition de déploiement, le contrôleur de réplication Kubernetes s’efforce de garder un pod en vie. Ensuite, vous apprenez à définir l’autoscaling de pod en utilisant le Horizontal Pod Autoscaler (HPA) qui est basé sur la charge et mettra à l’échelle plus de pods, au-delà de votre définition initiale, si une charge élevée est expérimentée.
Conditions préalables
- Cluster ROSA actif
- A déloyed l’application OSToy
Procédure
- Dans l’application OSToy, cliquez sur l’onglet Networking dans le menu navigation.
Dans la section "Communication intra-cluster", localisez la boîte située sous "Pods à distance" qui change au hasard les couleurs. À l’intérieur de la boîte, vous voyez le nom de la gousse du microservice. Il n’y a qu’une seule boîte dans cet exemple parce qu’il n’y a qu’un seul microservice pod.
Confirmez qu’il n’y a qu’un seul pod pour le microservice en exécutant la commande suivante:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE ostoy-frontend-679cb85695-5cn7x 1/1 Running 0 1h ostoy-microservice-86b4c6f559-p594d 1/1 Running 0 1h
NAME READY STATUS RESTARTS AGE ostoy-frontend-679cb85695-5cn7x 1/1 Running 0 1h ostoy-microservice-86b4c6f559-p594d 1/1 Running 0 1h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Enregistrez-le sur votre ordinateur local et enregistrez-le sur votre machine locale.
Changer la définition de déploiement en trois pods au lieu d’un en utilisant l’exemple suivant:
spec: selector: matchLabels: app: ostoy-microservice replicas: 3
spec: selector: matchLabels: app: ostoy-microservice replicas: 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquez les modifications de réplique en exécutant la commande suivante:
oc apply -f ostoy-microservice-deployment.yaml
$ oc apply -f ostoy-microservice-deployment.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteEn outre, vous pouvez modifier le fichier ostoy-microservice-deployment.yaml dans la console Web OpenShift en allant dans l’onglet Charges de travail > Déploiements > ostoy-microservice > onglet YAML.
Confirmez qu’il y a maintenant 3 pods en exécutant la commande suivante:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow La sortie montre qu’il y a maintenant 3 pods pour le microservice au lieu d’un seul.
Exemple de sortie
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 26m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 81s ostoy-microservice-6666dcf455-5z56w 1/1 Running 0 81s ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 26m
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 26m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 81s ostoy-microservice-6666dcf455-5z56w 1/1 Running 0 81s ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 26m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Faites évoluer l’application en utilisant le CLI ou en utilisant l’interface utilisateur web:
Dans le CLI, diminuer le nombre de pods de 3 à 2 en exécutant la commande suivante:
oc scale deployment ostoy-microservice --replicas=2
$ oc scale deployment ostoy-microservice --replicas=2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Dans le menu de navigation de l’interface utilisateur de la console Web OpenShift, cliquez sur Charges de travail > Déploiements > ostoy-microservice.
- À gauche de la page, localisez le cercle bleu avec une étiquette "3 Pod" au milieu.
La sélection des flèches à côté du cercle met à l’échelle le nombre de gousses. Choisissez la flèche vers le bas à 2.
La vérification
Consultez le compte de vos pods en utilisant le CLI, l’interface utilisateur Web ou l’application OSToy:
À partir du CLI, confirmez que vous utilisez deux pods pour le microservice en exécutant la commande suivante:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 75m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 50m ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 75m
NAME READY STATUS RESTARTS AGE ostoy-frontend-5fbcc7d9-rzlgz 1/1 Running 0 75m ostoy-microservice-6666dcf455-2lcv4 1/1 Running 0 50m ostoy-microservice-6666dcf455-tqzmn 1/1 Running 0 75m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans l’interface utilisateur Web, sélectionnez Charges de travail > Déploiements > ostoy-microservice.
En outre, vous pouvez confirmer qu’il existe deux pods en sélectionnant Networking dans le menu de navigation de l’application OSToy. Il devrait y avoir deux boîtes colorées pour les deux gousses.
18.9.1.2. La pod Autoscaling Copier lienLien copié sur presse-papiers!
Le service OpenShift Red Hat sur AWS offre un Autoscaler Horizontal Pod (HPA). La HPA utilise des mesures pour augmenter ou diminuer le nombre de gousses si nécessaire.
Procédure
Dans le menu de navigation de l’interface utilisateur Web, sélectionnez Pod Auto Scaling.
Créez l’HPA en exécutant la commande suivante:
oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
$ oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette commande crée une HPA qui maintient entre 1 et 10 répliques des pods contrôlés par le déploiement ostoy-microservice. Bien que le déploiement, HPA augmente et diminue le nombre de répliques pour maintenir l’utilisation moyenne du CPU dans toutes les gousses à 80% et 40 millicores.
Dans la page Pod Auto Scaling > Horizontal Pod Autoscaling, sélectionnez Augmenter la charge.
ImportantÉtant donné que l’augmentation de la charge génère des calculs intensifs de CPU, la page peut devenir insensible. C’est une réponse attendue. Cliquez sur Augmenter la charge une seule fois. Consultez le référentiel GitHub du microservice pour plus d’informations sur le processus.
Après quelques minutes, les nouveaux pods s’affichent sur la page représentée par des boîtes colorées.
NoteLa page peut faire l’expérience d’un décalage.
La vérification
Consultez le comptage de vos gousses avec l’une des méthodes suivantes:
Dans l’interface utilisateur Web de l’application OSToy, voir la boîte de pods à distance:
Étant donné qu’il n’y a qu’une seule gousse, l’augmentation de la charge de travail devrait déclencher une augmentation des gousses.
Dans le CLI, exécutez la commande suivante:
oc get pods --field-selector=status.phase=Running | grep microservice
oc get pods --field-selector=status.phase=Running | grep microservice
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
ostoy-microservice-79894f6945-cdmbd 1/1 Running 0 3m14s ostoy-microservice-79894f6945-mgwk7 1/1 Running 0 4h24m ostoy-microservice-79894f6945-q925d 1/1 Running 0 3m14s
ostoy-microservice-79894f6945-cdmbd 1/1 Running 0 3m14s ostoy-microservice-79894f6945-mgwk7 1/1 Running 0 4h24m ostoy-microservice-79894f6945-q925d 1/1 Running 0 3m14s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il est également possible de vérifier la mise à l’échelle automatique à partir du gestionnaire de cluster OpenShift
- Dans le menu de navigation de la console Web OpenShift, cliquez sur Observer > Tableau de bord.
Dans le tableau de bord, sélectionnez Kubernetes / Compute Resources / Namespace (Pods) et votre espace de noms.
Le graphique apparaît montrant l’utilisation de vos ressources à travers le CPU et la mémoire. Le graphique supérieur montre la consommation récente de CPU par pod et le graphique inférieur indique l’utilisation de la mémoire. Ce qui suit répertorie les appels dans le graphique:
- La charge a augmenté (A).
- Deux nouveaux pods ont été créés (B et C).
- L’épaisseur de chaque graphique représente la consommation de CPU et indique quelles gousses manipulaient plus de charge.
La charge a diminué (D), et les gousses ont été supprimées.
18.9.1.3. La mise à l’échelle des nœuds Copier lienLien copié sur presse-papiers!
Le service Red Hat OpenShift sur AWS vous permet d’utiliser l’autoscaling des nœuds. Dans ce scénario, vous allez créer un nouveau projet avec un travail qui a une charge de travail importante que le cluster ne peut pas gérer. Avec la mise à l’échelle automatique activée, lorsque la charge est supérieure à votre capacité actuelle, le cluster créera automatiquement de nouveaux nœuds pour gérer la charge.
Conditions préalables
- L’autoscaling est activé sur vos pools de machines.
Procédure
Créez un nouveau projet appelé autoscale-ex en exécutant la commande suivante:
oc new-project autoscale-ex
$ oc new-project autoscale-ex
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez le travail en exécutant la commande suivante:
oc create -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/job-work-queue.yaml
$ oc create -f https://raw.githubusercontent.com/openshift-cs/rosaworkshop/master/rosa-workshop/ostoy/yaml/job-work-queue.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Après quelques minuts, exécutez la commande suivante pour voir les pods:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Étant donné qu’il y a beaucoup de pods dans un état en attente, ce statut devrait déclencher l’autoscaler pour créer plus de nœuds dans votre pool de machines. Laissez le temps de créer ces nœuds de travail.
Après quelques minutes, utilisez la commande suivante pour voir combien de nœuds de travail vous avez maintenant:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Les nœuds de travail ont été créés automatiquement pour gérer la charge de travail.
De retour à l’application OSToy en entrant la commande suivante:
oc project ostoy
$ oc project ostoy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow