Errores cuando se instala Kf
Error del servidor (solicitud incorrecta): El carácter no es válido
Si ves este error cuando configuras los valores predeterminados de configuración, es probable que el valor de la variable de entorno ${DOMAIN}
que se usa en el comando incluya "$" de escape. Usa comillas simples para definir un dominio con un nombre de espacio o alguna otra sustitución:
Error from server (BadRequest): invalid character '$' in string escape code
Errores con objetos de Kubernetes de Kf
Sigue estas instrucciones para solucionar problemas de los objetos de Kubernetes de Kf.
Busca el nombre del tipo de recurso de Kubernetes que deseas solucionar mediante la enumeración de todos los recursos de Kf:
kubectl api-resources --api-group=kf.dev
Resultado de ejemplo:
NAME SHORTNAMES APIGROUP NAMESPACED KIND apps kf.dev true App builds kf.dev true Build clusterservicebrokers kf.dev false ClusterServiceBroker routes kf.dev true Route servicebrokers kf.dev true ServiceBroker serviceinstancebindings kf.dev true ServiceInstanceBinding serviceinstances kf.dev true ServiceInstance spaces kf.dev false Space
Obtén la instancia del recurso con el que deseas solucionar problemas mediante
kubectl
. Si el objeto no está en un espacio de nombres, omite la marca-n
:kubectl get api-resource-name.kf.dev object-name -n space-name -o yaml
Por ejemplo:
kubectl get apps.kf.dev my-app -n my-space -o yaml
Selecciona tu problema en las siguientes pestañas:
El objeto no se concilia
- Comprueba el valor de
metadata.generation
. Este número aumenta cada vez que se actualiza el objeto. Si el número es extremadamente alto, es probable que dos controladores de Kubernetes se disputen el objeto. Verifica tu clúster para ver si se está aplicando alguna política al objeto que podría cambiar el estado deseado. - Verifica si se borra el espacio de nombres al que pertenece el objeto. Si es así, es posible que el objeto no se concilie.
- Comprueba que el campo
status.observedGeneration
exista. Si no existe, es posible que el controlador aún no se haya ejecutado en el objeto. Verifica que el clúster y los controladores estén en buen estado mediantekf doctor
. - Verifica que el campo
metadata.generation
coincida con el campostatus.observedGeneration
. Si no es así, valida que el clúster y los controladores estén en buen estado mediantekf doctor
. Verifica si hay fallas en la lista
status.conditions
en función de esta lista de motivos de error comunes:NotOwned
: Hay otro recurso que existe en el clúster o el espacio de nombres como el que este objeto intenta crear. Lee el mensaje para encontrar el nombre duplicado y cambiar el nombre del recurso en conflicto o el objeto Kf.TemplateError
: Hay una configuración incorrecta en la especificación de recursos Kf o la configuración Kf, lo que hace que el recurso secundario se concilie de forma incorrecta. Valida la configuración del objeto Kf y el espacio de Kf.CacheOutdated
: El controlador Kf no recibe actualizaciones de Kubernetes lo suficientemente rápido. Comprueba el estado del clúster de Kubernetes.ReconciliationError
: El controlador de Kf no puede crear el recurso secundario necesario. Verifica que tu clúster esté en buen estado, que Kf se está ejecutando y que no haya ninguna política que impida que Kf cree el objeto al que se hace referencia en el mensaje.
El objeto no se borra
- Comprueba que se configuró el
metadata.deletionTimestamp
del objeto. Si no se configuró, la eliminación solicitada no funcionó. - Comprueba que el
metadata.deletionTimestamp
del objeto esté en el pasado. Si está en el futuro, es posible que el objeto no se borre. - Comprueba si existe una lista
metadata.finalizers
en el objeto. Si los finalizadores están presentes, el objeto debe esperar a que se quiten antes de que se borre. Si deseas forzar una eliminación sin esperar a los finalizadores, edita el objeto para quitarlos. - Pueden existir objetos secundarios que impidan que se borre el objeto. Pídele a un administrador que revise todos los objetos en el espacio de nombres y el clúster para comprobar si alguno se debe borrar de forma manual primero.
- Comprueba el valor de