Partager via


(DÉPRÉCIÉ) Mettre à l’échelle des pods Kubernetes et l’infrastructure Kubernetes

Conseil

Pour obtenir la version mise à jour, ce didacticiel utilise Azure Kubernetes Service, consultez Tutoriel : Mettre à l’échelle des applications dans Azure Kubernetes Service (AKS).

Avertissement

Le service Azure Container Service (ACS) est déprécié. Aucune nouvelle fonctionnalité ni fonction n’est ajoutée à ACS. L’ensemble des API, de l’utilisation du portail, des commandes CLI et de la documentation sont marquées comme dépréciées.

En 2017, nous avons introduit Azure Kubernetes Service (AKS) pour simplifier la gestion, le déploiement et les opérations liés à Kubernetes. Si vous utilisez l’orchestrateur Kubernetes, veuillez migrer vers AKS avant le 31 janvier 2020. Pour commencer, consultez Migrer vers Azure Kubernetes Service.

Pour plus d’informations, consultez l’annonce de la dépréciation d’Azure Container Service sur Azure.com.

Si vous avez suivi les didacticiels, vous disposez d’un cluster Kubernetes opérationnel dans Azure Container Service et vous avez déployé l’application Azure Vote.

Dans ce tutoriel (cinquième d’une série de sept), vous allez effectuer un scale-out des pods dans l’application et essayer la mise à l’échelle automatique des pods. Vous allez également apprendre à mettre à l’échelle le nombre de nœuds d’agents de machine virtuelle Azure afin de modifier la capacité du cluster pour l’hébergement des charges de travail. Les tâches accomplies sont les suivantes :

  • Mise à l’échelle manuelle des pods Kubernetes
  • Configuration de la mise à l’échelle automatique des pods qui exécutent le front-end de l’application
  • Mettre à l’échelle les nœuds d’agents Azure Kubernetes

Dans les didacticiels suivants, l’application Azure Vote est mise à jour et Log Analytics est configuré pour la surveillance du cluster Kubernetes.

Avant de commencer

Dans les didacticiels précédents, une application a été empaquetée dans une image conteneur, l’image a été chargée dans Azure Container Registry et un cluster Kubernetes a été créé. L’application a ensuite été exécutée sur le cluster Kubernetes.

Si vous n’avez pas accompli ces étapes et que vous souhaitez suivre cette procédure, revenez au Tutoriel 1 – Créer des images conteneur.

Mettre à l’échelle des pods manuellement

Jusqu’à maintenant, le front-end Azure Vote et l’instance de Redis ont été déployés, chacun avec un réplica unique. À des fins de vérification, exécutez la commande kubectl get.

Accédez à https://shell.azure.com pour ouvrir Cloud Shell dans votre navigateur.

kubectl get pods

Sortie :

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2549686872-4d2r5   1/1       Running   0          31m
azure-vote-front-848767080-tf34m   1/1       Running   0          31m

Modifiez manuellement le nombre de pods dans le déploiement azure-vote-front à l’aide de la commande kubectl scale. Cet exemple augmente le nombre à 5.

kubectl scale --replicas=5 deployment/azure-vote-front

Exécutez kubectl get pods pour vérifier que Kubernetes crée les pods. Au bout d’une minute environ, les pods supplémentaires sont en cours d’exécution :

kubectl get pods

Sortie :

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-2606967446-nmpcf    1/1       Running   0          15m
azure-vote-front-3309479140-2hfh0   1/1       Running   0          3m
azure-vote-front-3309479140-bzt05   1/1       Running   0          3m
azure-vote-front-3309479140-fvcvm   1/1       Running   0          3m
azure-vote-front-3309479140-hrbf2   1/1       Running   0          15m
azure-vote-front-3309479140-qphz8   1/1       Running   0          3m

Mettre à l’échelle les pods automatiquement

Kubernetes prend en charge la mise à l’échelle automatique des pods horizontaux pour ajuster le nombre de pods dans un déploiement en fonction de l’utilisation du processeur ou d’autres métriques.

Pour utiliser la mise à l’échelle automatique, vos pods doivent avoir des demandes et limites de processeur définies. Dans le déploiement azure-vote-front, le conteneur frontal demande 0,25 processeur, avec une limite de 0,5 processeur. Les paramètres s’apparentent aux suivants :

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

L’exemple suivant utilise la commande kubectl autoscale pour mettre automatiquement à l’échelle le nombre de pods dans le déploiement azure-vote-front. Ici, si l’utilisation du processeur dépasse 50 %, le nombre de pods augmente jusqu’à un maximum de 10.

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

Pour voir l’état de la mise à l’échelle automatique, exécutez la commande suivante :

kubectl get hpa

Sortie :

NAME               REFERENCE                     TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
azure-vote-front   Deployment/azure-vote-front   0% / 50%   3         10        3          2m

Au bout de quelques minutes, avec une charge minimale sur l’application Azure Vote, le nombre de réplicas de pods descend automatiquement à 3.

Mettre à l’échelle les agents

Si vous avez créé votre cluster Kubernetes à l’aide des commandes par défaut dans le didacticiel précédent, il comporte trois nœuds agents. Vous pouvez ajuster le nombre d’agents manuellement si vous prévoyez davantage ou moins de charges de travail de conteneur sur votre cluster. Utilisez la commande az acs scale, puis spécifiez le nombre d’agents avec le paramètre --new-agent-count.

L’exemple suivant permet d’augmenter le nombre de nœuds agents à 4 dans le cluster Kubernetes nommé myK8sCluster. Quelques minutes sont nécessaires pour exécuter la commande.

az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4

La sortie de la commande indique le nombre de nœuds agents dans la valeur de agentPoolProfiles:count :

{
  "agentPoolProfiles": [
    {
      "count": 4,
      "dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
      "fqdn": "",
      "name": "agentpools",
      "vmSize": "Standard_D2_v2"
    }
  ],
...

Étapes suivantes

Dans ce didacticiel, vous avez utilisé différentes fonctionnalités de mise à l’échelle dans votre cluster Kubernetes. Les tâches traitées ont inclus :

  • Mise à l’échelle manuelle des pods Kubernetes
  • Configuration de la mise à l’échelle automatique des pods qui exécutent le front-end de l’application
  • Mettre à l’échelle les nœuds d’agents Azure Kubernetes

Passez au didacticiel suivant pour en savoir plus sur la mise à jour d’une application dans Kubernetes.