Perché i pod ALB non vengono distribuiti ai nodi di lavoro?
Virtual Private Cloud Infrastruttura classica
Quando esegui kubectl get pods -n kube-system | grep alb, nessuno o solo alcuni pod ALB vengono distribuiti correttamente nei tuoi nodi di lavoro.
Quando si descrive un pod ALB eseguendo kubectl describe pod -n kube-system <pod_name>, si vede un messaggio simile al seguente nella sezione Eventi dell'output.
0/3 nodes are available: 1 node(s) didn’t match pod affinity/anti-affinity, 2 node(s) didn’t match node selector.
Ingress richiede almeno due nodi worker per zona per garantire un'elevata disponibilità e applicare aggiornamenti periodici.
Per impostazione predefinita, i pod ALB hanno due repliche. Tuttavia, i pod ALB hanno regole di anti-affinità per garantire che solo un pod sia pianificato su ciascun nodo di lavoro per l'alta disponibilità. Quando esiste solo un nodo di lavoro per zona in un cluster classico o VPC o se esiste solo un nodo di lavoro su una VLAN a cui è collegato il tuo cluster classico, i pod ALB non possono essere distribuiti correttamente.
Seguite questi passaggi per risolvere il problema:
-
Controlla il numero di nodi di lavoro per zona nel tuo cluster.
ibmcloud ks worker ls -c <cluster_name_or_ID> -
Se in una zona esiste un solo nodo worker, aumentare il numero di nodi worker in quella zona.
- Cluster classici e VPC:
- Se non si utilizzano i nodi edge: Assicurarsi che esistano almeno due nodi worker in ogni zona ridimensionando un pool worker esistente, creando un nuovo pool worker in un cluster VPC o creando un nuovo pool worker in un cluster classico.
- Se si utilizzano i nodi edge: Assicurarsi che in ogni zona siano abilitati almeno due nodi worker edge.
- Solo per i cluster classici: se esiste più di un nodo worker in ogni zona del cluster classico, i nodi worker potrebbero essere collegati a VLAN diverse all'interno di una zona, in modo che solo un nodo worker esista su una VLAN privata. Continua al passo successivo.
- Cluster classici e VPC:
-
Per i cluster classici con più nodi worker per zona, controllare la VLAN privata a cui è collegato ciascun nodo worker.
ibmcloud ks worker get -w <worker_ID> -c <cluster_name_or_ID> -
Se esiste solo un nodo di lavoro su una VLAN privata e gli altri nodi di lavoro della zona sono collegati a una VLAN privata diversa, crea un nuovo pool di nodi di lavoro con una dimensione di almeno un nodo di lavoro. Quando si aggiunge una zona al pool di worker, specificare la stessa zona e la stessa VLAN privata del nodo worker precedentemente identificato.
-
Ripeti questa procedura per ogni zona del tuo cluster per assicurarti che più di un nodo di lavoro esista su una VLAN privata.
Dopo che i nuovi nodi di lavoro sono stati distribuiti, i pod ALB vengono automaticamente pianificati per la distribuzione in tali nodi di lavoro.