Troubleshoting in RKE: Cuando los nodos estan en estado NotReady
Hace poco me paso un caso interesante con los cluster RKE on premise de la empresa, resulta que inesperadamente me llegaban las notificaciones de Grafana por uso intensivo de CPU y RAM, ingresando a ver el estado del cluster me doy con la sorpresa que 3 de los 4 worker nodos estaban caídos (NotReady).
La razón de que los 3 nodos estaban no disponibles fue que en algún momento se “eliminaron” los kubelets y kube-proxys de dichos nodos. Desesperado vi la forma de solucionar este problema pero desafortunadamente no encontré ninguna respuesta, así que me puse a averiguar sobre la funcionalidad del binario RKE (que se usa para instalar el cluster).
Resulta que RKE tiene la opción de actualizar un cluster (agregar o quitar worker nodes sin la necesidad de hacer algún cambio en los nodos masters) para ello se le tiene que pasar la opción — update-only en el comando para instalar el cluster:
Para ello primero saque los nodos dañados del descriptor cluster.yml y ejecuté el comando anterior, esto a fin de que los nodos se desligaran del cluster. Luego agregue los nodos en el descriptor cluster.yml y volví a ejecutar el mismo comando.
El resultado de esa acción fue que dichos nodos fueron considerados como nodos nuevos por lo que el instalador volvió a instalar las imágenes correspondientes (Kubelet, proxy, etc.) Volviendo así el cluster a su normalidad.