¿Por qué los pods de ALB no se despliegan en nodos trabajadores?
Nube privada virtual Infraestructura clásica
Cuando ejecuta kubectl get pods -n kube-system | grep alb, o no hay ningún pod de ALB o solo algunos pods de ALB se han desplegado correctamente en los nodos trabajadores.
Cuando describe un pod de ALB ejecutando kubectl describe pod -n kube-system <pod_name>, ve un mensaje similar al siguiente en la sección Events de la salida.
0/3 nodes are available: 1 node(s) didn’t match pod affinity/anti-affinity, 2 node(s) didn’t match node selector.
Ingress necesita al menos dos nodos trabajadores por zona para garantizar la alta disponibilidad y para aplicar actualizaciones periódicas.
De forma predeterminada, los pods de ALB tienen dos réplicas. Sin embargo, los pods de ALB tienen reglas antiafinidad para garantizar que solo hay un pod planificado para en cada nodo trabajador para alta disponibilidad. Cuando solo existe un nodo de trabajador por zona en un clúster clásico o de VPC, o si solo existe un nodo de trabajador en una VLAN a la que está conectado el clúster clásico, los pods de ALB no se pueden desplegar correctamente.
Sigue estos pasos para resolver el problema:
-
Compruebe el número de nodos trabajadores por zona en el clúster.
ibmcloud ks worker ls -c <cluster_name_or_ID> -
Si sólo existe un nodo trabajador en una zona, aumente el número de nodos trabajadores en esa zona.
- Clusters clásicos y VPC:
- Si no utiliza nodos de borde: Asegúrese de que existen al menos dos nodos de trabajador en cada zona redimensionando un grupo de trabajadores existente, creando un nuevo grupo de trabajadores en un clúster VPC o creando un nuevo grupo de trabajadores en un clúster clásico.
- Si utiliza nodos de borde: Asegúrese de que al menos dos nodos trabajadores edge están habilitados en cada zona.
- Sólo clusters clásicos: Si existe más de un nodo trabajador en cada zona de su cluster clásico, sus nodos trabajadores pueden estar conectados a diferentes VLANs dentro de una zona de forma que sólo exista un nodo trabajador en una VLAN privada. Continúe con el paso siguiente.
- Clusters clásicos y VPC:
-
En los clústeres clásicos con varios nodos trabajadores por zona, compruebe la VLAN privada a la que está conectado cada nodo trabajador.
ibmcloud ks worker get -w <worker_ID> -c <cluster_name_or_ID> -
Si solo existe un nodo trabajador en una VLAN privada y los otros nodos trabajadores de la zona están conectados a otra VLAN privada, cree una nueva agrupación de nodos trabajadores que un tamaño de al menos un nodo trabajador. Cuando añada una zona al pool de trabajadores, especifique la misma zona y VLAN privada que el nodo trabajador que identificó previamente.
-
Repita estos pasos para cada zona del clúster para asegurarse de que existe más de un nodo trabajador en una VLAN privada.
Después de desplegar los nuevos nodos trabajadores, los pods de ALB se planifican automáticamente para que se desplieguen en dichos nodos trabajadores.