Después de suprimir todos los nodos trabajadores, ¿por qué no se inician mis pods en los nuevos nodos trabajadores?
Solucionar los errores de eliminación de nodos de trabajo y los pods bloqueados.
Nube privada virtual Infraestructura clásica
Ha suprimido todos los nodos trabajadores del clúster para que haya cero nodos trabajadores. A continuación, ha añadido uno o varios nodos trabajadores. Cuando ejecuta el mandato siguiente, varios pods para los componentes de Kubernetes quedan
bloqueados en el estado ContainerCreating y los pods calico-node quedan bloqueados en el estado CrashLoopBackOff.
oc -n calico-system get pods
Cuando suprime todos los nodos trabajadores del clúster, no existe ningún nodo trabajador en el que se pueda ejecutar el pod calico-kube-controllers. Los datos de pod del controlador de Calico no se pueden actualizar para eliminar
los datos de los nodos de trabajador suprimidos. Cuando el pod del controlador de Calico empieza a ejecutarse de nuevo en los nuevos nodos trabajadores, sus datos no se actualizan para los nuevos nodos trabajadores y los pods calico-node no se inician.
Suprima las entradas de nodo trabajador calico-node existentes para que se puedan crear nuevos pods.
Antes de empezar: instale la CLI de Calico.
-
Ejecute el mandato
ibmcloud oc cluster configy copie y pegue la salida para configurar la variable de entornoKUBECONFIG. Incluya las opciones--adminy--networkcon el mandatoibmcloud oc cluster config. La opción--admindescarga las claves para acceder a su portafolio de infraestructura y ejecutar mandatos de Calico en los nodos trabajadores. La opción--networkdescarga el archivo de configuración de Calico para ejecutar todos los mandatos de Calico.ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin --network -
Para los pods
calico-nodeque han quedado bloqueados en el estadoCrashLoopBackOff, anote las direcciones IP deNODE.oc -n calico-system get pods -o wideEn esta salida de ejemplo, el pod
calico-nodeno se puede iniciar en el nodo de trabajador10.176.48.106.NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ... calico-kube-controllers-656c5785dd-kc9x2 1/1 Running 0 25h 10.176.48.107 10.176.48.107 <none> <none> calico-node-mkqbx 0/1 CrashLoopBackOff 1851 25h 10.176.48.106 10.176.48.106 <none> <none> coredns-7b56dd58f7-7gtzr 0/1 ContainerCreating 0 25h 172.30.99.82 10.176.48.106 <none> <none> -
Obtenga los ID de las entradas del nodo trabajador
calico-node. Copie los ID solo de las direcciones IP de nodo trabajador que ha recuperado en el paso anterior.calicoctl get nodes -o wide -
Utilice los ID para suprimir las entradas de nodo trabajador. Después de suprimir las entradas de nodo trabajador, el controlador de Calico vuelve a planificar los pods
calico-nodeen los nuevos nodos trabajadores.calicoctl delete node <node_ID> -
Verifique que los pods del componente de Kubernetes, incluidos los pods
calico-node, se están ejecutando. La planificación de los podscalico-nodey la creación de los nuevos pods del componente pueden tardar unos minutos.oc -n calico-system get pods
Para evitar este error en el futuro, nunca suprima todos los nodos trabajadores del clúster. Ejecute siempre al menos un nodo trabajador en el clúster y, si utiliza Ingress o rutas para exponer apps, ejecute al menos dos nodos trabajadores por zona.