Pourquoi les pods d'équilibreur de charge d'application ne sont-ils pas déployés sur les noeuds worker ?
Cloud privé virtuel Infrastructure classique
Lorsque vous avez exécuté la commande kubectl get pods -n kube-system | grep alb, aucun pod d'équilibreur de charge d'application n'a été déployé sur vos noeuds worker ou seulement certains pods d'équilibreur de charge d'application
ont été déployés.
Lorsque vous décrivez un pod ALB en exécutant kubectl describe pod -n kube-system <pod_name>, vous voyez un message similaire à ce qui suit dans la section Evénements de la sortie.
0/3 nodes are available: 1 node(s) didn’t match pod affinity/anti-affinity, 2 node(s) didn’t match node selector.
Ingress nécessite au moins deux noeuds worker par zone pour garantir une haute disponibilité et appliquer les mises à jour périodiques.
Par défaut, les pods d'équilibreur de charge d'application comportent deux répliques. Toutefois, les pods d'équilibreur de charge d'application ont des règles d'anti-affinité pour garantir qu'il n'y a qu'un seul pod planifié sur chaque noeud worker pour la haute disponibilité. Lorsqu'un seul noeud worker existe par zone dans un cluster classique ou de VPC, ou qu'une seul noeud worker existe sur un VLAN auquel votre cluster classique est connecté, les pods ALB ne peuvent pas être déployés correctement.
Suivez les étapes suivantes pour résoudre le problème :
-
Vérifiez le nombre de noeuds worker par zone dans votre cluster.
ibmcloud ks worker ls -c <cluster_name_or_ID> -
S'il n'existe qu'un seul nœud de travail dans une zone, augmentez le nombre de nœuds de travail dans cette zone.
- Clusters classiques et VPC:
- Si vous n'utilisez pas de nœuds de bordure : Assurez-vous qu'il existe au moins deux nœuds de travail dans chaque zone en redimensionnant un pool de travail existant, en créant un nouveau pool de travail dans un cluster VPC ou en créant un nouveau pool de travail dans un cluster classique.
- Si vous utilisez des nœuds périphériques : Assurez-vous qu'au moins deux nœuds de travail en périphérie sont activés dans chaque zone.
- Clusters classiques uniquement: s'il existe plus d'un nœud de travail dans chaque zone de votre cluster classique, vos nœuds de travail peuvent être connectés à différents VLAN au sein d'une même zone, de sorte qu'un seul nœud de travail existe sur un VLAN privé. Passez à l'étape suivante.
- Clusters classiques et VPC:
-
Pour les clusters classiques avec plusieurs nœuds de travail par zone, vérifiez le VLAN privé auquel chaque nœud de travail est rattaché.
ibmcloud ks worker get -w <worker_ID> -c <cluster_name_or_ID> -
S'il existe un seul noeud worker sur un réseau local virtuel privé et que les autres noeuds worker de la zone sont connectés à un autre réseau local virtuel, créez un pool de noeuds worker d'une taille d'au moins un noeud worker. Lorsque vous ajoutez une zone au pool de travailleurs, spécifiez la même zone et le même VLAN privé que le nœud de travailleur que vous avez identifié précédemment.
-
Répétez ces étapes pour chaque zone de votre cluster afin de vous assurer qu'il existe plusieurs noeuds worker sur un réseau local virtuel privé.
Après le déploiement des nouveaux noeuds worker, les pods d'équilibreur de charge d'application sont automatiquement planifiés pour être déployés sur ces noeuds worker.