¿Por qué mis pods predeterminados de istio-ingressgateway
están atascados en pending
?
Cuando ejecuta kubectl get pod -n istio-system
, los pods de istio-ingressgateway
se atascan en pending
.
Además, cuando obtenga los detalles de uno de los pods ejecutando kubectl describe pods -n istio-system -l app=istio-ingressgateway
y compruebe la sección Events
de la salida, verá un mensaje similar
al siguiente.
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 18s (x4 over 15m) default-scheduler 0/3 nodes are available: 3 node(s) didn't match Pod's node affinity/selector. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling..
Es posible que las claves de etiqueta de zona en los pods de istio-ingressgateway
no coincidan con las etiquetas de ninguno de los nodos. Esto impide que las reglas de afinidad de nodo planifiquen pods en nodos.
Para comprobar las claves de etiqueta de zona, ejecute kubectl describe cm managed-istio-custom -n ibm-operators
para ver el ConfigMappersonalizado de Istio gestionado. Compruebe el ConfigMap para las claves en el
formato istio-ingressgateway-zone-<#>
, como por ejemplo istio-ingressgateway-zone-1
. Si las claves no están presentes en el ConfigMap, el pod y las etiquetas del nodo trabajador no coinciden.
Para resolver el problema, reinicie el trabajo de configuración de Istio que añade las etiquetas de zona en el ConfigMap.
-
Suprima el trabajo de configuración de Istio en el espacio de nombres
ibm-system
.kubectl delete job -n ibm-system -l addon.cleanup=istio
-
Espere 15 minutos a que el trabajo actualice el ConfigMap y a que los pods de
istio-ingressgateway
recojan las etiquetas de zona. -
Ejecute
kubectl get pod -n istio-system
para comprobar el estado de los pods.