¿Por qué los pods de ALB no se despliegan en nodos trabajadores?
Virtual Private Cloud 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.
-
Compruebe el número de nodos trabajadores por zona en el clúster.
ibmcloud ks worker ls -c <cluster_name_or_ID>
- Clústeres clásicos y de VPC: si solo existe un nodo trabajador en una zona, aumente el número de nodos trabajadores en esa zona.
- Si no utiliza nodos periféricos: asegúrese de que existen al menos dos nodos trabajadores en cada zona cambiando el tamaño de una agrupación de nodos trabajadores existente, creando una nueva agrupación de nodos trabajadores en un clúster de VPC o creando una nueva agrupación de nodos trabajadores en un clúster clásico.
- Si utiliza nodos de extremo: asegúrese de que haya al menos dos nodos trabajadores de extremo habilitados en cada zona.
- Solo clústeres clásicos: si existe más de un nodo trabajador en cada zona del clúster clásico, es posible que los nodos trabajadores estén conectados a VLAN diferentes dentro de una zona de forma que solo exista un nodo trabajador en una VLAN privada. Continúe con el paso siguiente.
- Clústeres clásicos y de VPC: si solo existe un nodo trabajador en una zona, aumente el número de nodos trabajadores en esa zona.
-
Para cada nodo trabajador de una zona, obtenga la VLAN privada a la que está conectado el 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 a la agrupación de nodos trabajadores en el paso 6, especifique la misma zona y VLAN privada que el nodo trabajador que ha identificado 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.