18.9. Tutoriel: Mise à l’échelle d’une application


18.9.1. La mise à l’échelle

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

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

  1. Dans l’application OSToy, cliquez sur l’onglet Networking dans le menu navigation.
  2. 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.

  3. Confirmez qu’il n’y a qu’un seul pod pour le microservice en exécutant la commande suivante:

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    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
    Copy to Clipboard Toggle word wrap

  4. Enregistrez-le sur votre ordinateur local et enregistrez-le sur votre machine locale.
  5. 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
    Copy to Clipboard Toggle word wrap
  6. Appliquez les modifications de réplique en exécutant la commande suivante:

    $ oc apply -f ostoy-microservice-deployment.yaml
    Copy to Clipboard Toggle word wrap
    Note

    En 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.

  7. Confirmez qu’il y a maintenant 3 pods en exécutant la commande suivante:

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    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
    Copy to Clipboard Toggle word wrap

  8. 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
      Copy to Clipboard Toggle word wrap
    • 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
    Copy to Clipboard Toggle word wrap

    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
    Copy to Clipboard Toggle word wrap

  • 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

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

  1. Dans le menu de navigation de l’interface utilisateur Web, sélectionnez Pod Auto Scaling.

  2. Créez l’HPA en exécutant la commande suivante:

    $ oc autoscale deployment/ostoy-microservice --cpu-percent=80 --min=1 --max=10
    Copy to Clipboard Toggle word wrap

    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.

  3. 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.

    Note

    La 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
    Copy to Clipboard Toggle word wrap

    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
    Copy to Clipboard Toggle word wrap

  • Il est également possible de vérifier la mise à l’échelle automatique à partir du gestionnaire de cluster OpenShift

    1. Dans le menu de navigation de la console Web OpenShift, cliquez sur Observer > Tableau de bord.
    2. Dans le tableau de bord, sélectionnez Kubernetes / Compute Resources / Namespace (Pods) et votre espace de noms.

    3. 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:

      1. La charge a augmenté (A).
      2. Deux nouveaux pods ont été créés (B et C).
      3. L’épaisseur de chaque graphique représente la consommation de CPU et indique quelles gousses manipulaient plus de charge.
      4. La charge a diminué (D), et les gousses ont été supprimées.

18.9.1.3. La mise à l’échelle des nœuds

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

  1. Créez un nouveau projet appelé autoscale-ex en exécutant la commande suivante:

    $ oc new-project autoscale-ex
    Copy to Clipboard Toggle word wrap
  2. 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
    Copy to Clipboard Toggle word wrap
  3. Après quelques minuts, exécutez la commande suivante pour voir les pods:

    $ oc get pods
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                     READY   STATUS    RESTARTS   AGE
    work-queue-5x2nq-24xxn   0/1     Pending   0          10s
    work-queue-5x2nq-57zpt   0/1     Pending   0          10s
    work-queue-5x2nq-58bvs   0/1     Pending   0          10s
    work-queue-5x2nq-6c5tl   1/1     Running   0          10s
    work-queue-5x2nq-7b84p   0/1     Pending   0          10s
    work-queue-5x2nq-7hktm   0/1     Pending   0          10s
    work-queue-5x2nq-7md52   0/1     Pending   0          10s
    work-queue-5x2nq-7qgmp   0/1     Pending   0          10s
    work-queue-5x2nq-8279r   0/1     Pending   0          10s
    work-queue-5x2nq-8rkj2   0/1     Pending   0          10s
    work-queue-5x2nq-96cdl   0/1     Pending   0          10s
    work-queue-5x2nq-96tfr   0/1     Pending   0          10s
    Copy to Clipboard Toggle word wrap

  4. É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.
  5. Après quelques minutes, utilisez la commande suivante pour voir combien de nœuds de travail vous avez maintenant:

    $ oc get nodes
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                                         STATUS   ROLES          AGE     VERSION
    ip-10-0-138-106.us-west-2.compute.internal   Ready    infra,worker   22h     v1.23.5+3afdacb
    ip-10-0-153-68.us-west-2.compute.internal    Ready    worker         2m12s   v1.23.5+3afdacb
    ip-10-0-165-183.us-west-2.compute.internal   Ready    worker         2m8s    v1.23.5+3afdacb
    ip-10-0-176-123.us-west-2.compute.internal   Ready    infra,worker   22h     v1.23.5+3afdacb
    ip-10-0-195-210.us-west-2.compute.internal   Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-196-84.us-west-2.compute.internal    Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-203-104.us-west-2.compute.internal   Ready    worker         2m6s    v1.23.5+3afdacb
    ip-10-0-217-202.us-west-2.compute.internal   Ready    master         23h     v1.23.5+3afdacb
    ip-10-0-225-141.us-west-2.compute.internal   Ready    worker         23h     v1.23.5+3afdacb
    ip-10-0-231-245.us-west-2.compute.internal   Ready    worker         2m11s   v1.23.5+3afdacb
    ip-10-0-245-27.us-west-2.compute.internal    Ready    worker         2m8s    v1.23.5+3afdacb
    ip-10-0-245-7.us-west-2.compute.internal     Ready    worker         23h     v1.23.5+3afdacb
    Copy to Clipboard Toggle word wrap

    Les nœuds de travail ont été créés automatiquement pour gérer la charge de travail.

  6. De retour à l’application OSToy en entrant la commande suivante:

    $ oc project ostoy
    Copy to Clipboard Toggle word wrap
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat