Soluciona problemas con las aplicaciones de Kf

Utiliza estos pasos para solucionar varios problemas que pueden ocurrir cuando se usan aplicaciones de Kf.

El objeto se atascó durante la eliminación

Ejecuta el siguiente comando para obtener la información del recurso y, a continuación, verifica las causas enumeradas a continuación:

kubectl get apps.kf.dev -n SPACE_NAME APP_NAME -o yaml

La CLI de kf puede ayudar a verificar algunos de los problemas:

kf doctor --space SPACE_NAME app/APP_NAME
Causa posibleSolución
La marca de tiempo de eliminación se centra en el futuro.

Con el sesgo de reloj, el metadata.deletionTimestamp puede seguir centrado en el futuro. Espera unos minutos para ver si se borra el objeto.

Los finalizadores existen en el objeto.

Los finalizadores están presentes en el objeto, y el controlador que los configura debe quitarlos antes de que se borre el objeto.

Si deseas forzar la eliminación sin esperar a los finalizadores, edita el objeto para quitarlos del array metadata.finalizers.

Advertencia: Quitar los finalizadores sin permitir que se completen los controladores puede causar errores, problemas de seguridad, pérdida de datos o recursos huérfanos.

Pueden existir objetos dependientes.

Es posible que el objeto esté a la espera de que se borren los dependientes antes de que se lo borre. Consulta la guía de recolección de elementos no utilizados de Kubernetes para obtener más información. Haz que un administrador verifique todos los objetos en el espacio de nombres y el clúster para ver si uno de ellos está bloqueando la eliminación.

Si necesitas quitar el objeto sin esperar a los dependientes, usa kubectl delete con la marca de cascada establecida en: --cascade=orphan.

Desvío del estado de generación del objeto

Ejecuta el siguiente comando para obtener la información del recurso y, a continuación, verifica las causas enumeradas a continuación:

kubectl get apps.kf.dev -n SPACE_NAME APP_NAME -o yaml

La CLI de kf puede ayudar a verificar algunos de los problemas:

kf doctor --space SPACE_NAME app/APP_NAME
Causa posibleSolución
El objeto tiene un desvío en la generación de la versión.

Por lo general, este error ocurre cuando el controlador Kf no leyó la versión más reciente del objeto. Este error suele recuperarse una vez que las réplicas de Kubernetes alcanzan la coherencia eventual y, por lo general, no requiere acciones de los usuarios.

No se pudo conciliar el objeto

Ejecuta el siguiente comando para obtener la información del recurso y, a continuación, verifica las causas enumeradas a continuación:

kubectl get apps.kf.dev -n SPACE_NAME APP_NAME -o yaml

La CLI de kf puede ayudar a verificar algunos de los problemas:

kf doctor --space SPACE_NAME app/APP_NAME
Causa posibleSolución
El objeto tiene TemplateError

Por lo general, este error ocurre si el usuario ingresó una propiedad no válida en la especificación de recurso personalizado o si la configuración del espacio o clúster es incorrecta.

Para comprender la causa raíz, el usuario puede leer el mensaje de error más largo en el status.conditions del objeto con el comando:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Por ejemplo: kubectl describe serviceinstance my-service -n my-space.

El objeto tiene un error ChildNotowned (conflictos de nombre)

Por lo general, este error significa que los objetos que el controlador intenta crear ya existen. Esto sucede si el usuario creó un recurso K8s que tiene el mismo nombre que el que el controlador intenta crear, pero es más frecuente si borra un recurso y, luego, el controlador Kf intenta volver a crearlo. Si un recurso secundario aún se encuentra en espera, su propietario será el recurso anterior que ya no existe.

Para solucionar el error, se recomienda que el usuario borre el recurso afectado y lo vuelva a crear. Para borrar el objeto, usa un comando de eliminación de Kf o el comando kubectl delete RESOURCE_TYPE RESOURCE_NAME -n SPACE. Por ejemplo, kf delete-space my-space o kubectl delete space my-space.

Para volver a crear un recurso, usa un comando Kf. Por ejemplo: kf create-space my-space.

El objeto tiene ReconciliationError

Por lo general, este error significa que se produjo un error con la llamada HTTP que realizó el controlador Kf al servicio de la API de Kubernetes para crear o actualizar el recurso.

Para comprender la causa raíz, el usuario puede leer el mensaje de error más largo en el status.conditions del objeto con el comando:kubectl describe RESOURCE_TYPE RESOURCE_NAME -n space. Por ejemplo: kubectl describe serviceinstance my-service -n my-space.