Esta pregunta es sobre StatefulSet y Local Persistent Volume.
Si implementamos un StatefulSet con los pods usando volúmenes persistentes locales, cuando el nodo de Kube que aloja un volumen persistente desaparece, el pod correspondiente se vuelve no programable. Mi pregunta es ¿cómo puede un operador detectar este problema de manera confiable?
No puedo encontrar ninguna documentación sobre esto. ¿Puede el operador recibir una notificación o algo así?
Lo que observé es que cuando se elimina un nodo que aloja un PV, el pod correspondiente se atasca en la etapa pendiente. Una forma en la que puedo pensar para detectar este problema es encontrar el PVC para el pod, luego encontrar el PV para el PVC y luego encontrar el nodo en el que está el PV, luego consultar para ver si el nodo está allí. Pero el problema es que la inspección de PV y nodos requiere privilegios de nivel de clúster, lo que idealmente no se debe otorgar a un operador que solo debe administrar recursos a nivel de espacio de nombres.
Además, no estoy seguro de que (siguiendo la secuencia Pod->PVC->PV->Node) capture todas las situaciones posibles en las que el almacenamiento físico se vuelve inaccesible.
¿Cuál es la forma adecuada de detectar la situación? Una vez que se detecta la situación, es bastante fácil de arreglar.
¡Muchos gracias!