Que causa este problema?
Reconocer la causa raíz de este problema es un paso crítico para solucionar este problema. Algunas razones por las cuales las vainas pueden quedarse atascadas en un "estado de terminación" incluyen:
Razón # 1: Falta de recursos
Las vainas de Kubernetes requieren cantidades adecuadas de recursos para funcionar sin ningún problema. Si no hay un número insuficiente de recursos, múltiples vainas pueden comenzar a competir entre sí por los recursos, lo que como resultado puede hacer que una de las cápsulas esté atrapada en un estado de terminación.
Razón # 2: Problemas con la cápsula en sí
Un problema con la configuración o el código de la cápsula puede dar lugar a que esté atascado en un estado de terminación. Si hay finalizadores en el POD, el problema de la raíz puede ser que los finalizadores no se completen. También puede ser el caso de que el POD no responda a la señal de terminación.
Razón # 3: Se puede romper un nodo subyacente
Cada vez que las vainas de Kubernetes no saldrán de la condición de terminación, el nodo subyacente probablemente no funcione mal. Cuando esto se lleva a cabo, las aplicaciones también pueden no programar la falta de disponibilidad. Esto podría convertirse en un drenaje financiero para su organización debido al hecho de que este problema puede causar una escala inútil. Puede ser un desafío para muchos equipos diagnosticar este problema porque las vainas de Kubernetes con frecuencia terminan, lo que dificulta saber cuáles permanecieron durante demasiado tiempo. Resolver este problema es complejo porque el drenaje de nodos en Kubernetes debe configurarse de manera que funcione para su entorno.
Si ve en el archivo de configuración que todas las cápsulas en un solo nodo están en el estado de "terminar", entonces este podría ser el problema.
Cómo arreglar este problema?
Las siguientes formas pueden ayudarlo a solucionar el problema fácilmente.
Eliminar la vaina
Primero, deberá intentar eliminar manualmente la cápsula haciendo los siguientes pasos:
Sin embargo, hay pocas posibilidades de que la eliminación manual de la cápsula del espacio de nombres ayude a resolver el problema incluso si da el nombre exacto de la cápsula que desea eliminar.
Si es así, el problema podría ser que el POD no está terminando porque un cierto proceso no está reaccionando a una señal. Por lo tanto, deberá ordenar que el POD se elimine con fuerza utilizando el siguiente comando:
> kubectl eliminar pod [name_of_the_pod] --grace -period = 0 --force kubectl eliminar pod [name_of_the_pod] --graceperiod = 0 --force -n [name_of_the_namespace]Asegúrese de agregar el nombre de su cápsula en el comando si está en un espacio de nombres dedicado.
Eliminando los finalizadores
Si eliminar la cápsula no funciona con fuerza, entonces el problema principal puede ser con la cápsula misma. Un problema común con el POD es la incapacidad de los finalizadores que se completan, que puede ser el problema principal que está causando que el POD esté atascado en un estado de terminación. Por lo tanto, primero necesitará verificar los finalizadores en el POD obteniendo la configuración del POD:
> kubectl get pod -n [espacio de nombres] -p [name_of_the_pod] -o yaml> /tmp /config_file.TXTLuego, busque en metadatos para la sección de finalizadores. Si se encuentran algún finalizador, deberá eliminarlos haciendo lo siguiente:
> Kubectl Patch pod [name_of_the_pod] -p '"metadata": "finalizadores": null'Reiniciar el kubelet
Si las soluciones mencionadas no resuelven este problema, entonces debe intentar reiniciar el kubelet. Sin embargo, es posible que deba involucrar a un administrador si no tiene permiso. Si tiene acceso, debe reiniciar el proceso Kubelet al sshing al nodo.
Cómo evitar que las vainas estén atrapadas en el futuro?
Estos son algunos pasos que puede seguir para asegurarse de que este problema no ocurra en primer lugar:
Conclusión
Los problemas que pueden surgir como resultado de que una cápsula esté atrapada en el estado de terminación haga que valga la pena tomar medidas adicionales para garantizar, antes de desplegarse, que no hay problemas con la cápsula en sí, por ejemplo, puede haber un problema. con la configuración del cápsula que probablemente hará que la cápsula esté atascada en el estado de terminación. También debe tener mucho cuidado para evitar cosas que pueden resultar en este problema, como la falta de recursos o el clúster de Kubernetes que no están actualizados. Si este problema aún ocurre a pesar de tomar los pasos necesarios para evitarlo, lo primero que debe hacerse será identificar la causa raíz de este problema y usar una solución en consecuencia.