Questions fréquentes (FAQ) sur les problèmes courants liés à l’exécution ou à la mise à l’échelle de clusters AKS volumineux
Cet article répond aux questions fréquemment posées sur les problèmes courants qui peuvent se produire lorsque vous exécutez ou mettez à l’échelle de grands clusters dans Microsoft Azure Kubernetes Service (AKS). Un grand cluster est un cluster qui s’exécute à plus de 500 nœuds.
J’obtiens une erreur « Quota dépassé » lors de la création, du scale-up ou de la mise à niveau
Pour résoudre ce problème, créez une demande de support dans l’abonnement dans lequel vous essayez de créer, mettre à l’échelle ou mettre à niveau, et demandez un quota pour le type de ressource correspondant. Pour plus d’informations, consultez Quotas de calcul régionaux.
J’obtiens une erreur « insufficientSubnetSize » quand je déploie un cluster AKS qui utilise la mise en réseau avancée
Cette erreur indique qu’un sous-réseau en cours d’utilisation pour un cluster n’a plus d’adresses IP disponibles dans son CIDR pour une affectation de ressource réussie. Ce problème peut se produire lors des mises à niveau, des montées en puissance parallèles ou de la création d’un pool de nœuds. Ce problème se produit car le nombre d’adresses IP libres dans le sous-réseau est inférieur au résultat de la formule suivante :
nombre de nœuds demandés * valeur du pool de
--max-pod
nœuds
Configuration requise
Pour effectuer une mise à l’échelle au-delà de 400 nœuds, vous devez utiliser le plug-in réseau Azure CNI.
Pour vous aider à planifier votre réseau virtuel et vos sous-réseaux afin de prendre en charge le nombre de nœuds et de pods que vous déployez, consultez Planification des adresses IP pour votre cluster. Pour réduire la surcharge liée à la planification du sous-réseau ou à la recréation du cluster en raison de l’épuisement des adresses IP, consultez Allocation d’adresses IP dynamiques.
Solution
Étant donné que vous ne pouvez pas mettre à jour la plage CIDR d’un sous-réseau existant, vous devez avoir l’autorisation de créer un sous-réseau pour résoudre ce problème. Procédez comme suit :
Régénérez un nouveau sous-réseau qui a une plus grande plage CIDR suffisante pour les objectifs de l’opération.
Create un nouveau sous-réseau qui a une nouvelle plage qui ne se chevauche pas.
Create un nouveau pool de nœuds sur le nouveau sous-réseau.
Drainez les pods à partir de l’ancien pool de nœuds qui réside dans l’ancien sous-réseau qui sera remplacé.
Supprimez l’ancien sous-réseau et l’ancien pool de nœuds.
Je rencontre des échecs de connectivité de sortie sporadiques en raison de l’épuisement des ports SNAT
Pour les clusters qui s’exécutent à une échelle relativement grande (plus de 500 nœuds), nous vous recommandons d’utiliser la passerelle NAT (Managed Network Address Translation) AKS pour une plus grande scalabilité. La passerelle Nat Azure autorise jusqu’à 64 512 flux de trafic UDP et TCP sortants par adresse IP, et un maximum de 16 adresses IP.
Si vous n’utilisez pas nat managé, consultez Résoudre les problèmes d’épuisement de la traduction d’adresses réseau source (SNAT) et les délais d’expiration de connexion pour comprendre et résoudre les problèmes d’épuisement des ports SNAT.
Je ne peux pas monter en puissance jusqu’à 5 000 nœuds à l’aide de la Portail Azure
Utilisez Azure CLI pour effectuer un scale-up jusqu’à un maximum de 5 000 nœuds en procédant comme suit :
Create un nombre minimal de pools de nœuds dans le cluster (car la limite maximale de nœuds du pool de nœuds est de 1 000) en exécutant la commande suivante :
az aks nodepool add --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Effectuez un scale-up des pools de nœuds un par un. Dans l’idéal, définissez cinq minutes de temps de veille entre des scale-ups consécutifs de 1 000. Exécutez la commande suivante :
az aks nodepool scale --resource-group MyResourceGroup --name nodepool1 --cluster-name MyManagedCluster
Ma mise à niveau est en cours d’exécution, mais elle est lente
Dans sa configuration par défaut, AKS surtensions pendant une mise à niveau en effectuant les actions suivantes :
- Création d’un nœud.
- Mise à l’échelle du pool de nœuds au-delà du nombre souhaité de nœuds d’un nœud.
Pour les paramètres de surtension maximale, une valeur par défaut d’un nœud signifie qu’AKS crée un nœud avant de vider les applications existantes et de remplacer un nœud avec version antérieure. Ce nœud supplémentaire permet à AKS de réduire l’interruption de la charge de travail.
Lorsque vous mettez à niveau des clusters qui ont un grand nombre de nœuds, la mise à niveau de l’ensemble du cluster peut prendre plusieurs heures si vous utilisez la valeur par défaut de max-surge
. Vous pouvez personnaliser la max-surge
propriété par pool de nœuds pour permettre un compromis entre la vitesse de mise à niveau et l’interruption de la mise à niveau. En augmentant la valeur de surtension maximale, vous permettez au processus de mise à niveau de se terminer plus tôt. Toutefois, une valeur élevée pour l’augmentation maximale peut également entraîner des interruptions pendant le processus de mise à niveau.
Exécutez la commande suivante pour augmenter ou personnaliser la surtension maximale pour un pool de nœuds existant :
az aks nodepool update --resource-group MyResourceGroup --name mynodepool --cluster-name MyManagedCluster --max-surge 5
Ma mise à niveau atteint la limite de quota (5 000 clusters)
Pour résoudre ce problème, consultez Augmenter les quotas de processeurs virtuels régionaux.
Ma création de service interne à plus de 750 nœuds est lente ou échoue en raison d’une erreur de délai d’attente
Standard Load Balancer mises à jour du pool principal (SLB) constituent un goulot d’étranglement connu des performances. Nous travaillons sur une nouvelle fonctionnalité qui permettra de créer plus rapidement des services et un SLB à grande échelle. Pour nous envoyer vos commentaires sur ce problème, consultez Prise en charge d’Azure Kubernetes pour l’équilibreur de charge avec un pool principal basé sur IP.
Solution
Nous vous recommandons d’effectuer un scale-down du cluster à moins de 750 nœuds, puis de créer un équilibreur de charge interne pour le cluster. Pour créer un équilibreur de charge interne, créez un type de service et azure-load-balancer-internal
une LoadBalancer
annotation, conformément à l’exemple de procédure suivant.
Étape 1 : Create un équilibreur de charge interne
Pour créer un équilibreur de charge interne, créez un manifeste de service nommé internal-lb.yaml qui contient le type de LoadBalancer
service et l’annotation azure-load-balancer-internal
, comme illustré dans l’exemple suivant :
apiVersion: v1
kind: Service
metadata:
name: internal-app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: internal-app
Étape 2 : Déployer l’équilibreur de charge interne
Déployez l’équilibreur de charge interne à l’aide de la kubectl apply
commande et spécifiez le nom de votre manifeste YAML, comme illustré dans l’exemple suivant :
kubectl apply -f internal-lb.yaml
Une fois votre cluster créé, vous pouvez également provisionner un équilibreur de charge interne (conformément à cette procédure) et maintenir un service à charge équilibrée interne en cours d’exécution. Cela vous permet d’ajouter d’autres services à l’équilibreur de charge à grande échelle.
L’exécution de la création du service SLB à grande échelle prend des heures
Les mises à jour du pool principal SLB sont un goulot d’étranglement connu des performances. Nous travaillons sur une nouvelle fonctionnalité qui vous permettra d’exécuter des services à charge équilibrée à grande échelle avec des performances considérablement plus rapides pour les opérations de création, de mise à jour et de suppression. Pour nous envoyer vos commentaires, consultez Prise en charge d’Azure Kubernetes pour l’équilibreur de charge avec un pool principal basé sur IP.
Exclusion de responsabilité de tiers
Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour