Considérations relatives à la scalabilité pour les environnements Azure Kubernetes Service
Azure Kubernetes Service (AKS) peut faire l’objet d’un scale-in et d’un scale-out en fonction des besoins de l’infrastructure (nécessitant plus ou moins de capacité), en ajoutant des pools de nœuds avec des fonctionnalités spéciales comme le GPU, ou des besoins en applications. Dans ce cas, vous avez plusieurs facteurs comme le nombre et le taux de connexions simultanées, le nombre de demandes et les latences back-end sur les applications AKS.
Les options de scalabilité les plus courantes pour AKS sont l’autoscaler de cluster et l’autoscaler de pods horizontaux. L’autoscaler du cluster ajuste le nombre de nœuds en fonction des ressources de calcul demandées dans le pool de nœuds. L’Autoscaler de pods élastique (HPA) ajuste le nombre de pods dans un déploiement en fonction de l’utilisation du processeur ou d’autres métriques configurés.
Remarques relatives à la conception
Voici quelques facteurs essentiels à prendre en compte :
Une scalabilité rapide est-elle nécessaire pour votre application (sans temps d’attente) ?
- Pour que le provisionnement des pods soit rapide, utilisez des nœuds virtuels (ceux-ci sont uniquement pris en charge avec des nœuds/pods Linux).
La charge de travail est-elle insensible au temps et peut-elle traiter les interruptions ? Envisager l’utilisation de machines virtuelles spot
L’infrastructure sous-jacente (plug-in réseau, plages d’adresses IP, limites d’abonnement, quotas, etc.) peut-elle faire l’objet d’un scale-out ?
Envisager d’automatiser la scalabilité
- Vous pouvez activer la mise à l’échelle automatique du cluster pour mettre à l’échelle le nombre de nœuds. Envisagez la mise à l’échelle automatique du cluster et la mise à l’échelle sur zéro.
- Le HPA met automatiquement à l’échelle le nombre de pods.
Envisager la scalabilité avec des pools de nœuds et la prise en charge multizone
- Quand vous créez des pools de nœuds, envisagez de définir des zones de disponibilité avec AKS.
- Envisagez d’utiliser plusieurs pools de nœuds pour prendre en charge des applications avec des besoins différents.
- Mettez à l’échelle les pools de nœuds avec l’utilitaire de mise à l’échelle automatique des clusters.
- Vous pouvez mettre à l’échelle les pools de nœuds utilisateur sur zéro. Consultez les limitations.
Recommandations de conception
Adoptez les bonnes pratiques suivantes pour votre conception :
- Utilisez des groupes de machines virtuelles identiques, qui sont nécessaires pour les scénarios comme la mise à l’échelle automatique, les pools de nœuds multiples et la prise en charge des pools de nœuds Windows.
- N’activez pas ou ne modifiez pas manuellement les paramètres de scalabilité des groupes de machines virtuelles identiques dans le Portail Azure ou à l’aide d’Azure CLI. Utilisez plutôt l’autoscaler de cluster.
- Si vous avez besoin d’une mise à l’échelle automatique rapide, opérez à partir du cluster AKS à l’aide d’Azure Container Instances et de nœuds virtuels : vous bénéficiez ainsi d’une scalabilité rapide et infinie et d’une facturation à la seconde.
- Recourez à l’utilitaire de mise à l’échelle automatique des clusters et à la mise à l’échelle sur zéro pour une scalabilité prévisible à l’aide de nœuds worker basés sur une machine virtuelle.
- Activez l’utilitaire de mise à l’échelle automatique des clusters pour répondre aux demandes des applications.
- Vous pouvez activer la mise à l’échelle automatique pour vos pools multinœuds.
- Activez le HPA (Horizontal Pod Autoscaler) pour réduire les heures de forte utilisation de votre application.
- Tous vos conteneurs et pods doivent avoir des demandes et des limites de ressources définies.
- HPA met automatiquement à l’échelle le nombre de pods en fonction des limites de ressources observées du processeur/de la mémoire ou de métriques personnalisées.
- Activez Azure Monitor pour conteneurs et la supervision en temps réel pour superviser l’utilisation des clusters et des charges de travail.
- Utilisez des pools multinœuds quand vos applications ont des besoins différents en ressources.
- N’oubliez pas que vous pouvez spécifier une taille de machine virtuelle pour un pool de nœuds.
- Envisagez l’utilisation de pools de nœuds basés sur une machine virtuelle spot pour les charges de travail qui ne sont pas sensibles au temps et qui peuvent gérer les interruptions et les évictions.