Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : AKS sur Azure Local
Pour suivre les demandes d’application dans Kubernetes, vous devrez peut-être ajuster le nombre de nœuds qui exécutent vos charges de travail. Le composant de mise à l’échelle automatique de cluster surveille les pods de votre cluster qui ne peuvent pas être programmés en raison de contraintes de ressources. Lorsque la mise à l’échelle automatique détecte des problèmes, elle augmente le nombre de nœuds dans le pool de nœuds pour répondre à la demande de l’application. Il vérifie également régulièrement les nœuds pour s’assurer qu’il n’y a pas de pods en cours d’exécution et réduit le nombre de nœuds si nécessaire. Cet article vous montre comment activer et gérer l’autoscaler de cluster dans AKS.
Note
Avant d’activer la mise à l’échelle automatique sur votre cluster Local Azure, passez en revue les exigences de mise à l’échelle pour AKS sur Azure Local pour vous assurer que votre environnement répond aux limites requises.
Activer la mise à l’échelle automatique du cluster sur un nouveau cluster
Créez un cluster AKS à l’aide de la commande az aksarc create, puis activez et configurez l’autoscaler du cluster sur le pool de nœuds du cluster à l’aide du paramètre --enable-cluster-autoscaler, en spécifiant --min-count et --max-count pour un nœud. L’exemple de commande suivant crée un cluster avec un nœud unique, active la mise à l’échelle automatique du cluster et définit au minimum un et un maximum de trois nœuds :
az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--custom-location $customLocationId
--vnet-ids $vnetId
--generate-ssh-keys
--aad-admin-group-object-ids $entraIds
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
La création du cluster et la configuration des paramètres de mise à l’échelle automatique du cluster prennent quelques minutes.
Activer la mise à l’échelle automatique du cluster sur un cluster existant
Mettez à jour un cluster existant à l’aide de la commande az aksarc update, puis activez et configurez l’outil de mise à l’échelle automatique du cluster à l’aide du paramètre --enable-cluster-autoscaler en spécifiant --min-count et --max-count pour un nœud. L’exemple de commande suivant met à jour un cluster AKS existant pour activer la mise à l’échelle automatique du cluster sur le cluster et définit au minimum un et un maximum de trois nœuds :
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3
La mise à jour du cluster et la configuration des paramètres de mise à l’échelle automatique du cluster prennent quelques minutes.
Désactiver la mise à l’échelle automatique du cluster sur un cluster
Désactivez l’autoscaler du cluster à l’aide de la commande az aksarc update et du paramètre --disable-cluster-autoscaler :
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--disable-cluster-autoscaler
Les nœuds ne sont pas supprimés lorsque le générateur de mise à l’échelle automatique du cluster est désactivé.
Modifier les paramètres de l’autoscaler de cluster
Si vos demandes d’application changent, vous devrez peut-être ajuster le nombre de nœuds de l’autoscaler de cluster pour que la mise à l'échelle soit efficace. Modifiez le nombre de nœuds à l’aide de la commande az aksarc update et mettez à jour l’autoscaler du cluster à l’aide du paramètre --update-cluster-autoscaler en spécifiant vos valeurs --min-count et --max-count mises à jour pour le nœud.
az aksarc update \
--resource-group myResourceGroup \
--name myAKSCluster \
--update-cluster-autoscaler \
--min-count 1 \
--max-count 5
Utiliser le profil de mise à l’échelle automatique du cluster
Vous pouvez configurer des paramètres plus précis de l’autoscaler de cluster en modifiant les valeurs par défaut du profil d’autoscaler à l’échelle du cluster. Par exemple, un événement de scale-down se produit lorsque des nœuds sont sous-utilisés après 10 minutes. Si vous avez des charges de travail qui s’exécutent toutes les 15 minutes, vous souhaitez peut-être modifier le profil du programme de mise à l’échelle automatique pour effectuer un scale-down des nœuds sous-utilisés après 15 ou 20 minutes. Lorsque vous activez l’option de mise à l’échelle automatique de cluster, un profil par défaut est utilisé, à moins de spécifier différents paramètres.
Paramètres du profil de mise à l’échelle automatique du cluster
Le tableau suivant répertorie les paramètres disponibles pour le profil d’autoscaler de cluster :
| Setting | Description | Valeur par défaut |
|---|---|---|
scan-interval |
Fréquence à laquelle le cluster est réévalué pour effectuer un scale-up ou un scale-down. | 10 secondes |
scale-down-delay-after-add |
Durée, après le scale-up, à l’issue de laquelle s’effectue la reprise de l’évaluation de scale-down. | 10 minutes |
scale-down-delay-after-delete |
Durée, après la suppression du nœud, à l’issue de laquelle s’effectue la reprise de l’évaluation de scale-down. | scan-interval |
scale-down-delay-after-failure |
Délai après un échec de réduction de capacité au terme duquel l’évaluation de la réduction de capacité reprend. | Trois minutes |
scale-down-unneeded-time |
Durée pendant laquelle un nœud doit être inutile avant d’être éligible pour un scale-down. | 10 minutes |
scale-down-unready-time |
Durée pendant laquelle un nœud non prêt doit être inutile avant d’être éligible pour un scale-down. | 20 minutes |
scale-down-utilization-threshold |
Niveau d’utilisation du nœud (défini comme la somme des ressources demandées divisée par la capacité) auquel un nœud peut être envisagé pour un scale-down. | 0.5 |
max-graceful-termination-sec |
Nombre maximal de secondes pendant lesquelles l’autoscaler du cluster attend l’arrêt d’un pod lorsqu’il tente de réduire le nombre de nœuds. | 600 secondes |
balance-similar-node-groups |
Détecte les pools de nœuds similaires et équilibre le nombre de nœuds entre eux. | false |
expander |
Type de groupe de nœuds utilisé par l’outil d’expansion lors de la mise à l’échelle vers le haut. Les valeurs possibles incluent most-pods, random, least-waste etpriority. |
|
skip-nodes-with-local-storage |
Si true, la mise à l’échelle automatique du cluster ne supprime pas les nœuds avec des pods avec un stockage local ; par exemple, EmptyDir ou HostPath. |
true |
skip-nodes-with-system-pods |
Si true, l’autoscaler du cluster ne supprime pas les nœuds contenant des pods du namespace kube-system (à l’exception des DaemonSet et des pods miroir). |
true |
max-empty-bulk-delete |
Nombre maximal de nœuds vides pouvant être supprimés en même temps | 10 nœuds |
new-pod-scale-up-delay |
Pour les scénarios de type mise à l’échelle en rafales ou par lots dans lesquels l’autorité de certification ne doit pas agir avant que le planificateur Kubernetes n’ait pu planifier tous les pods, vous pouvez indiquer à l’autorité de certification d’ignorer les pods non planifiés avant qu’ils n’aient atteint une certaine ancienneté. | 0 seconde |
max-total-unready-percentage |
Pourcentage maximal de nœuds non prêts dans le cluster. Une fois ce pourcentage dépassé, l’autorité de certification arrête les opérations. | 45% |
max-node-provision-time |
Durée maximale pendant laquelle la mise à l’échelle automatique attend qu’un nœud soit provisionné. | 15 minutes |
Définir le profil de mise à l’échelle automatique du cluster sur un nouveau cluster
Créez un cluster AKS à l’aide de la az aksarc create commande et définissez le profil de mise à l’échelle automatique du cluster à l’aide du cluster-autoscaler-profile paramètre :
az aksarc create \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--node-count 1 \
--enable-cluster-autoscaler \
--min-count 1 \
--max-count 3 \
--cluster-autoscaler-profile scan-interval=30s
Définir le profil de mise à l’échelle automatique du cluster sur un cluster existant
Définissez la mise à l’échelle automatique de cluster sur un cluster existant à l’aide de la commande az aksarc update et du paramètre cluster-autoscaler-profile. L’exemple suivant configure le paramètre d’intervalle d’analyse sur 30 s :
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--cluster-autoscaler-profile scan-interval=30s
Rétablir les valeurs par défaut du profil de mise à l’échelle automatique de cluster
Réinitialisez le profil de mise à l’échelle automatique du cluster à l’aide de la az aksarc update commande :
az aksarc update \
--resource-group myResourceGroup \
--name my-aks-arc-cluster \
--cluster-autoscaler-profile ""
Utiliser efficacement la mise à l’échelle automatique
Maintenant que le cluster et le pool de nœuds sont configurés pour être mis à l’échelle automatiquement, vous pouvez éventuellement configurer une charge de travail pour qu’elle soit également mise à l’échelle de manière à utiliser les fonctionnalités de mise à l’échelle automatique horizontale.
Note
Les conseils suivants ne sont pas officiellement pris en charge par Microsoft. Il est partagé comme recommandation de meilleur effort basée sur les pratiques open source.
Il existe deux méthodes disponibles pour la mise à l’échelle de la charge de travail :
- Kubernetes Horizontal Pod Autoscaler : en fonction des caractéristiques de charge, Horizontal Pod Autoscaler (également appelé « horizontal autoscaler ») adapte les pods d'un déploiement d'application aux nœuds disponibles dans le cluster Kubernetes. Si aucun autre nœud n'est disponible pour être planifié, l'autoscaler horizontal instancie un nouveau nœud sur lequel planifier les pods. Si la charge de l'application diminue, les nœuds sont réduits à nouveau. Pour que l’autoscaler de pod horizontal fonctionne, vous devez déployer manuellement le composant Metrics Server dans votre cluster AKS. Pour plus d’informations sur les règles de mise à l’échelle automatique de pod horizontale, consultez mise à l’échelle automatique de pod horizontale Kubernetes.
- Règles d’anti-affinité des nœuds Kubernetes : les règles d’anti-affinité pour un déploiement Kubernetes peuvent spécifier qu’un ensemble de pods ne peut pas être mis à l’échelle sur le même nœud et qu’un autre nœud est nécessaire pour mettre à l’échelle la charge de travail. En combinaison avec les caractéristiques de charge ou le nombre de pods cibles pour les instances d'application, l'autoscaler horizontal instancie de nouveaux nœuds dans le pool de nœuds afin de satisfaire les requêtes. Si la demande d’application diminue, l’autoscaler horizontal effectue une nouvelle mise à l’échelle vers le bas du pool de nœuds. Pour plus d’informations sur les règles d’affinité des pods Kubernetes, consultez Affectation de pods à des nœuds.
Étapes suivantes
Cet article vous a montré comment mettre automatiquement à l’échelle le nombre de nœuds AKS. Pour mettre à l’échelle manuellement des pools de nœuds, consultez gérer les pools de nœuds dans les clusters AKS.