Concepts liés à la scalabilité des clusters

Effectué

Privation de nœud

Dans la clé spec.containers.resources d'un fichier YAML de pod, vous définissez le nombre de ressources dont le pod a besoin. Après avoir créé un pod dans un nœud, Kubernetes alloue automatiquement ce nombre de ressources au pod afin qu’il puisse s’exécuter avec la quantité d’énergie nécessaire.

Un nœud unique est une machine virtuelle unique qui dispose d’une quantité limitée de ressources pour les pods, comme le processeur et la mémoire vive. Vous ne pouvez pas faire tourner un nombre infini de pods dans un nœud. Lorsqu'un nœud ne remplit pas les conditions requises pour la ressource du pod, le pod entre en concurrence avec les ressources spécifiées pour les ressources du nœud, ce qui conduit à une insuffisance de nœud. Le pod reste dans l’état En attente et n’est planifié sur aucun nœud jusqu’à ce qu’il y ait suffisamment de ressources disponibles.

Extensibilité des clusters

Pour éviter l'insuffisance de nœud, l'opérateur doit effectuer un scale-out du cluster et ajouter d'autres machines virtuelles au pool de nœuds. Vous pouvez effectuer une mise à l'échelle manuelle du cluster en utilisant la commande Azure CLI az aks scale. Vous pouvez également utiliser le portail Azure pour mettre manuellement à l'échelle votre cluster. Connectez-vous au portail et sélectionnez votre cluster Azure Kubernetes Service (AKS). Sous Paramètres, sélectionnez Pools de nœuds. Sélectionnez le pool de nœuds que vous souhaitez mettre à l'échelle, puis sélectionnez Mettre le pool de nœuds.à l'échelle.

La mise à l'échelle manuelle peut s'avérer fastidieuse, en particulier pour les clusters dont la demande est irrégulière et fluctuante. Lorsque le nombre de pods varie constamment, vous devez le surveiller en permanence pour détecter les pods non programmés et procéder aux ajustements nécessaires en temps réel.

Autoscaler de cluster

Dans AKS, l’outil cluster autoscaler automatise le processus de mise à l’échelle du cluster. Lorsque vous activez ce programme sur votre cluster AKS, il surveille les pods non programmés avec des contraintes de ressources et augmente automatiquement le nombre de nœuds pour répondre aux besoins.

Diagramme illustrant le fonctionnement de la mise à l’échelle automatique de clusters.

Le programme de mise à l'échelle automatique de cluster peut également réduire le nombre de nœuds dans un cluster si la capacité du cluster n'est pas utilisée pendant une période donnée. Lorsque cette condition est remplie, l’autoscaler boucle (rend le nœud indisponible pour la programmation de nouvelles charges de travail) et draine (déplace les charges de travail existantes vers un autre nœud) le nœud. Par conséquent, tous les pods planifiés dans ce nœud sont déplacés en toute sécurité vers d’autres nœuds. Il garantit également qu'aucun autre module n'est programmé pendant le processus. Ensuite, il supprime le nœud du pool.

Dans certaines situations, le programme de mise à l'échelle automatique de cluster ne peut pas supprimer un nœud en raison de pods qui ne peuvent pas être déplacés hors de ce nœud. Ces situations peuvent inclure :

  • Un pod est directement créé avec un fichier YAML et n'est lié à aucun contrôleur, à l'instar de Deployments ou ReplicaSets.
  • Le Budget d’interruption de pods (PDB) est trop restrictif et n’autorise pas la diminution du nombre de pods au-dessous d’un certain seuil.
  • Le pod a un sélecteur de nœud pour ce nœud particulier ou une affinité de nœuds qui l'empêche de se déplacer.

Lorsque la mise à l'échelle automatique est activée, la mise à l'échelle manuelle du cluster est désactivée.

Vérifiez vos connaissances

1.

En quoi le programme de mise à l'échelle automatique de cluster est-il différent de l'HPA ?

2.

Pourquoi le programme de mise à l'échelle automatique de cluster est-il nécessaire dans un environnement de production ?

3.

Dans quelles situations le cluster ne parvient-il pas à supprimer un nœud ?