En esta página, se describen los códigos de error del Sincronizador de configuración y las acciones recomendadas para controlar estos errores.
Los mensajes de error de Sincronizador de configuración constan de un ID de error con el formato KNV1234, en el que 1234 es un número único seguido de una descripción del problema y una sugerencia para solucionarlo. K se hereda de las convenciones de Kubernetes, las reglas con el prefijo N son específicas de nomos, V es específico de los errores detectables en el estado inicial del repositorio y el clúster. Los códigos de los errores detectables en el estado inicial del repositorio y el clúster tienen el formato KNV1XXX. Los códigos de errores que solo se pueden detectar en el tiempo de ejecución tienen el formato KNV2XXX.
Tabla de errores de KNV
| Código de error | Descripción | Acción recomendada |
|---|---|---|
|
El ID de InternalError cambió a |
N/A |
|
Obsoleto a partir del Sincronizador de configuración 1.3. |
N/A |
|
Obsoleto a partir del Sincronizador de configuración 1.3. |
N/A |
|
Cuando se usa una estructura de repositorio jerárquica, un directorio que contiene un archivo de configuración de espacio de nombres no debe contener ningún subdirectorio. Un directorio sin un archivo de configuración de espacio de nombres es un directorio de espacio de nombres abstracto y tiene directorios herederos. Por lo tanto, los directorios de espacios de nombres abstractos deben tener subdirectorios. Un directorio que contiene un archivo de configuración de espacio de nombres es un directorio de espacio de nombres, del que no se puede heredar, por lo que no debe tener ningún subdirectorio. |
Quita el archivo de configuración del espacio de nombres del directorio principal o mueve el subdirectorio a otro lugar. |
|
Un objeto con permisos de clúster no debe declarar la anotación
|
Quita |
|
El único parámetro de configuración válido para la anotación de administración es
|
Asegúrate de que la anotación de administración sea Para obtener más información, consulta Administra objetos. |
|
No se pudo analizar un objeto declarado en el repositorio. |
Valida tu formato YAML. Por ejemplo, puedes usar el comando
Si |
|
Cuando se usa un repositorio no estructurado, los archivos de configuración no se deben declarar en un directorio de espacio de nombres abstracto. |
Mueve la configuración que se indica en el mensaje de error a un directorio de espacio de nombres. Para obtener más información, consulta Usa un repositorio no estructurado. |
|
Cuando se usa una estructura de repositorio jerárquica, los parámetros de configuración deben declarar espacios de nombres que coincidan con el directorio del espacio de nombres que los contiene o bien omitir el campo. |
Actualiza el campo de espacio de nombres identificado en el mensaje de error. Para obtener más información, consulta Estructura del repositorio jerárquico. |
|
Los archivos de configuración no deben declarar anotaciones incompatibles que comiencen con |
Asegúrate de usar una de las siguientes anotaciones admitidas:
|
|
Las configuraciones no deben tener etiquetas con claves que comiencen con |
Actualiza las etiquetas identificadas en el mensaje de error. Por ejemplo, si intentaste declarar una etiqueta llamada |
|
Obsoleto a partir del Sincronizador de configuración 1.3. |
N/A |
|
La configuración hace referencia a un ClusterSelector o NamespaceSelector que no existe. Antes de que puedas usar un selector en una anotación para una configuración, el selector debe existir. |
Crea los selectores que falten o, si se quitó el selector, quita cualquier configuración que haga referencia a él. |
|
Los archivos de configuración ClusterSelector y NamespaceSelector usan la sintaxis correcta, pero se encontró un error de sintaxis. |
Asegúrate de especificar el archivo de configuración con el esquema de datos adecuado: |
|
Obsoleto en el Sincronizador de configuración 1.3.2. | N/A |
|
Cuando se usa la estructura de repositorio jerárquica, debe existir un archivo de configuración para el operador de ConfigManagement
en el directorio |
Define al menos una configuración mínima para el operador de Config Management. Para obtener más información, consulta Estructura del repositorio jerárquico. |
|
Obsoleto a partir del Sincronizador de configuración 1.3. | N/A |
|
Cuando se usa la estructura de repositorio jerárquica, los espacios de nombres no deben declararse directamente en el directorio |
Crea un subdirectorio para los archivos de configuración del espacio de nombres que se indican en el mensaje de error. Para obtener más información, consulta Estructura del repositorio jerárquico. |
|
Cuando se usa una estructura de repositorio jerárquica, un archivo de configuración de espacio de nombres declara
metadata.name, y su valor debe coincidir con el nombre del directorio del espacio de nombres.
|
Corrige el metadata.name del espacio de nombres o su directorio. |
|
No se define ningún CustomResourceDefinition para el recurso en el clúster. |
Crea un CustomResourceDefinition para el recurso al que se hace referencia en el mensaje de error. Los tipos de recursos que no son objetos integrados de Kubernetes deben tener un CustomResourceDefinition. |
|
Cuando usas un repositorio jerárquico, los archivos de configuración de este tipo no se pueden declarar en el directorio |
Mueve el recurso al que se hace referencia en el mensaje de error fuera del directorio |
|
El campo |
Si el formato del repositorio es compatible con la versión admitida, actualiza el campo |
|
Los nombres de los directorios deben tener menos de 64 caracteres, incluir caracteres alfanuméricos en minúscula o guiones (“-”), y comenzar y terminar con un carácter alfanumérico. |
Cambia el nombre del directorio con el nombre incorrecto o quítalo. |
|
Las configuraciones del mismo tipo deben tener nombres únicos en el mismo espacio de nombres y en sus espacios de nombres abstractos superiores. |
Cambia el nombre o quita los parámetros de configuración a los que se hace referencia en el mensaje de error para que todos tengan nombres únicos. |
|
No pueden existir varios recursos de espacio de nombres en el mismo directorio. |
Quita los archivos de configuración duplicados para que no quede más de un recurso de espacio de nombres. |
|
Todas las configuraciones deben declarar |
Agrega el campo |
|
No se permite el tipo |
Quita la configuración problemática o convierte tu repositorio para que use |
|
Si usas un repositorio jerárquico, solo puedes declarar tipos |
Asegúrate de que cualquier configuración declarada en el directorio |
|
Está prohibido declarar los espacios de nombres |
Si declaraste el espacio de nombres
Si declaraste los espacios de nombres
Si antes sincronizabas con un repositorio jerárquico y tenías que declarar el espacio de nombres del controlador junto con los recursos, considera cambiar a un repositorio no estructurado para obtener más flexibilidad en la estructura de origen. |
|
El |
Cambia el
Si |
|
Obsoleto a partir del Sincronizador de configuración 1.3. | N/A |
|
Está prohibido declarar un objeto con permisos de espacio de nombres fuera del directorio |
Mueve los archivos de configuración problemáticos para que estén en un directorio legal. Para obtener más información sobre los objetos con permiso de espacio de nombres, consulta Objetos con permiso de espacio de nombres. |
|
Está prohibido declarar un objeto con permisos de clúster fuera del directorio |
Mueve los archivos de configuración problemáticos para que estén en un directorio legal. Para obtener más información sobre los objetos con permiso de clúster, consulta Objetos con permiso de clúster. |
|
Obsoleto a partir del Sincronizador de configuración 1.3. | N/A |
|
Este tipo de recurso no se debe declarar en un |
Quita el recurso problemático. Si deseas obtener más información sobre |
|
Se detectó un valor no válido para |
Cambia |
|
El Sincronizador de configuración no puede configurar este objeto. |
Quita la configuración problemática del repositorio. |
|
Un directorio de espacio de nombres abstracto con archivos de configuración debe tener al menos un subdirectorio de espacio de nombres. |
Agrega un directorio de espacio de nombres en tu directorio de espacio de nombres abstracto, agrega un archivo de configuración de espacio de nombres a tu directorio de espacio de nombres abstracto o quita los archivos de configuración de tu directorio de espacio de nombres abstracto. |
|
No se permiten las configuraciones con |
Quita el campo |
|
Este |
Actualiza el |
|
No se permite quitar una definición de recurso personalizado (CRD) y dejar los recursos personalizados correspondientes en el repositorio. |
Quita el CRD junto con los recursos personalizados. |
|
El CustomResourceDefinition tiene un nombre no válido. |
Cambia el nombre por el de la recomendación que se indica en el mensaje de error. |
|
La configuración usa un grupo y un tipo obsoletos. |
Cambia el grupo o el tipo a la recomendación que se indica en el mensaje de error. |
|
Los recursos con permiso de clúster no deben declarar |
Quita el campo metadata.namespace de tu recurso con permiso de clúster. |
|
Los recursos con alcance de espacio de nombres deben declarar |
Agrega el campo faltante a tu recurso con alcance de espacio de nombres. |
|
Los archivos de configuración contienen un valor no válido para una anotación. |
Sigue las instrucciones del mensaje de error para resolverlo. |
|
El valor de |
Actualiza el valor de
|
|
Se declaró un recurso en un espacio de nombres no administrado. |
Quita la anotación |
|
Un recurso tiene una etiqueta ilegal. |
Quita las etiquetas ilegales que se indican en el mensaje de error. |
|
Un repositorio de espacio de nombres solo puede declarar recursos con alcance de espacio de nombres en el espacio de nombres al que se aplica el repositorio. |
Asegúrate de que todos los repositorios de espacios de nombres declaren correctamente los recursos con alcance de espacio de nombres.
Por ejemplo, el repositorio del repositorio de espacio de nombres
Por ejemplo, si una configuración en el repositorio de espacio de nombres Además de asegurarte de que los recursos con alcance de espacio de nombres se declaren correctamente, asegúrate de que los espacios de nombres se declaren en el repositorio raíz. Esto es necesario porque los espacios de nombres tienen alcance de clúster. |
|
Un repositorio de espacio de nombres puede declarar como máximo un recurso Kptfile. |
Quita todos los recursos de Kptfile, excepto uno. |
|
Cuando se administran objetos en varias fuentes de verdad, pueden surgir conflictos cuando el mismo objeto (grupo, tipo, nombre y espacio de nombres coincidentes) se declara en más de una fuente. Por ejemplo, cuando el mismo objeto se administra con un objeto RootSync y un objeto RepoSync, gana el objeto RootSync. Si RootSync se aplica primero, RepoSync informa un error de estado KNV1060. Si se aplica primero el objeto RepoSync, el objeto RootSync anula el objeto RepoSync, y el objeto RepoSync informa un error de estado KNV1060 cuando ve la actualización. |
Para resolver el conflicto, actualiza la configuración para que coincida con la otra fuente de información o borra el objeto en conflicto de una de las fuentes.
El comando |
|
Un |
Sigue las instrucciones del mensaje de error para corregir los errores de configuración. |
|
El Kptfile no tiene un campo de inventario válido. Un Kptfile debe tener un campo de inventario que no esté vacío y que tenga un identificador y un espacio de nombres especificados. |
Especifica los valores de |
|
Se encontraron archivos Kptfiles en el repositorio raíz. Los archivos Kptfiles solo son compatibles con repositorios con permiso de espacio de nombres. |
Quita los Kptfiles del repositorio raíz. |
|
No se pudo analizar el archivo |
Sigue las instrucciones del mensaje de error. Por ejemplo, es posible que debas volver a ejecutar |
|
El CustomResourceDefinition tiene un formato incorrecto. |
Comprueba el campo especificado en el mensaje de error y asegúrate de que su valor tenga el formato correcto. |
|
Un objeto de configuración debe declarar solo la anotación del selector de clústeres. Este error se produce cuando existen la anotación heredada ( |
Quita una de las anotaciones del campo |
|
El conciliador no puede codificar los campos declarados en un formato compatible con la aplicación del servidor. Puede deberse a un esquema desactualizado. |
Comprueba el campo especificado en el mensaje de error y asegúrate de que coincida con el esquema del tipo de recurso. |
|
El proceso de renderización detectó un problema que el usuario puede aplicar. |
Si el repositorio de Git contiene parámetros de configuración de Kustomize, pero no existe un archivo
Si el error se debe a fallas en
Si se produce un error |
|
Un reconciliador concilió su propio objeto RootSync o RepoSync. Un objeto RootSync puede administrar otros objetos RootSync y RepoSync, mientras que un objeto RepoSync puede administrar otros objetos RepoSync, pero no puede administrarse a sí mismo. |
Quita el objeto RootSync o RepoSync de la fuente de verdad desde la que se sincroniza el objeto. |
|
Falla una llamada del sistema a nivel del SO que accede a un recurso del sistema de archivos. |
Es probable que este error se deba a una configuración de YAML no válida o al uso de caracteres especiales. Si tienes una configuración de YAML no válida, verás un mensaje de error similar al siguiente:
Si el nombre o la ruta de acceso del archivo contienen caracteres especiales, es posible que veas un mensaje de error similar a |
|
Falla una solicitud de acceso al servidor de la API de Kubernetes. |
Las solicitudes a la API de Kubernetes pueden fallar por muchos motivos. Entre las causas comunes, se incluyen las siguientes:
El Sincronizador de configuración vuelve a intentar la operación después de la mayoría de los errores del servidor de la API. Algunos pueden ser problemas temporales que se resuelven por sí solos, pero la mayoría requerirá la intervención del usuario para resolverse. Los errores del servidor de la API rara vez se deben al Sincronizador de configuración en sí, pero, si sospechas que podría ser así, envía un informe de errores. |
|
Falla una llamada genérica del sistema a nivel del SO. | |
|
El Sincronizador de configuración no puede leer desde la fuente de información. |
Este error puede deberse a varios problemas. Para solucionar problemas de conexión a la fuente de confianza, consulta Soluciona problemas de conexión a la fuente de confianza.
Para obtener información sobre los problemas conocidos que causan errores de |
|
El Sincronizador de configuración está compitiendo con otro controlador por un recurso. Estas competencias consumen una gran cantidad de recursos y pueden empeorar tu rendimiento. | Para obtener sugerencias sobre cómo diagnosticar y resolver conflictos de controladores, consulta Soluciona problemas de conflictos de controladores. |
|
Para evitar la eliminación accidental, el Sincronizador de configuración no te permite quitar todos los espacios de nombres o recursos con permiso de clúster en una sola confirmación. |
Si el webhook de admisión del Sincronizador de configuración está inhabilitado, revierte la confirmación que borra todos los recursos.
Si deseas borrar el conjunto completo de recursos en administración, completa los siguientes pasos:
|
|
Un recurso en el servidor de la API se modifica o se borra mientras Sincronizador de configuración también intenta modificarlo. |
Si este tipo de error solo aparece durante el inicio o con poca frecuencia, puedes ignorarlo.
Si estos errores no son transitorios (persisten varios minutos), pueden indicar un
problema grave y |
|
Este es un error genérico que indica que el Sincronizador de configuración no pudo sincronizar algunos parámetros de configuración en el clúster. |
Este error puede deberse a varios problemas. Si quieres obtener sugerencias para resolver problemas comunes de sincronización, consulta Soluciona problemas de sincronización. |
|
Este es un error genérico que indica un problema con un recurso o conjunto de recursos. |
El mensaje de error incluye los recursos específicos que causaron el error. Investiga estos recursos. |
|
Se requiere un recurso específico para continuar, pero no se encontró ese recurso. Por ejemplo, el operador de ConfigManagement intentó actualizar un recurso, pero el recurso se borró mientras se calculaba la actualización. |
Crea o restablece el recurso faltante. |
|
Este error indica que se encontró más de una instancia de un APIResource en un contexto
en el que solo se permite exactamente una. Por ejemplo, solo debe existir un recurso |
Quita el APIResource adicional. |
|
Un reconciliador de espacio de nombres tiene permisos insuficientes para administrar recursos. |
Asegúrate de que el conciliador tenga los permisos necesarios. |
|
Esta advertencia ocurre cuando la configuración del webhook del Sincronizador de configuración se modifica de forma ilegal. Se ignoran las opciones de configuración del webhook ilegal. |
Quita el webhook modificado de forma ilegal. |
|
El proceso de renderización encontró un problema interno. Por ejemplo, el Sincronizador de configuración no puede acceder al sistema de archivos. |
Este error puede indicar que el Pod no está en buen estado. Para reiniciar los Pods del reconciliador, ejecuta los siguientes comandos: # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
Este error representa un problema transitorio que debería resolverse automáticamente más adelante. Por ejemplo, si el estado de renderización no coincide con la configuración de la fuente, es posible que veas este error. |
El error debería resolverse automáticamente. |
|
Hay un problema con el Sincronizador de configuración. |
Envía un informe de errores. |
|
Se produjo un error sin mensaje de error documentado. |
Aún no hemos escrito la documentación específica del error en cuestión. |
Mensajes de error sin código de KNV
Los errores que informan los reconciliadores de Sincronizador de configuración tienen el código de error KNV, pero los errores que informan otros componentes no tienen el código KNV. Por ejemplo, el error de permiso denegado proviene del controlador de la flota, que es una capa sobre el Sincronizador de configuración.
En la siguiente tabla, se enumeran algunos errores comunes sin el prefijo KNV.
| Mensaje de error | Acción recomendada |
|---|---|
|
|
No se pueden compilar los exportadores
Cuando un componente de Open Telemetry Collector no puede acceder a la cuenta de servicio predeterminada en el mismo espacio de nombres, es posible que notes que el Pod Este problema suele ocurrir cuando la federación de identidades para cargas de trabajo para GKE está habilitada en un clúster. Para resolver este problema, sigue las instrucciones en Supervisa el Sincronizador de configuración para otorgar permiso de escritura de métricas a la cuenta de servicio predeterminada.
Si el error persiste después de configurar IAM, reinicia el
Pod |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
No se pudo verificar el certificado del servidor
Si el contenedor Este mensaje indica que el servidor está configurado con certificados de una autoridad certificadora (CA) personalizada. Sin embargo, la AC personalizada no está configurada correctamente, lo que provoca que el contenedor no pueda recuperar datos del servidor.
Para resolver este problema, primero puedes verificar si el campo
A continuación, si el campo se configuró y el objeto Secret existe,
asegúrate de que el objeto Secret contenga los certificados completos. A continuación, se muestra un ejemplo de cómo enumerar los certificados del servidor: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' Puedes solicitarle a tu equipo de administración de redes que obtenga los certificados de CA por ti. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
No se pudo recuperar el secreto de extracción, por lo que es posible que la extracción de la imagen no se realice correctamenteSi usas un registro privado con Google Distributed Cloud, la instalación o actualización del Sincronizador de configuración puede detenerse. Verás un error similar a este mensaje. Para resolver este problema, sigue los pasos que se indican en Cómo actualizar Config Sync con un registro privado antes de instalar o actualizar Sincronizador de configuración. |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
Permiso denegadoSi recibes un error similar a este ejemplo cuando intentas configurar el Sincronizador de configuración, es posible que no tengas la función de administrador de GKE Hub. Para asegurarte de tener los permisos necesarios, asegúrate de haber otorgado los roles de IAM necesarios. |
¿Qué sigue?
- Consulta los problemas conocidos.
- Lee la introducción a la solución de problemas del Sincronizador de configuración.
- Si necesitas asistencia adicional, comunícate con Atención al cliente de Cloud.