Referencia de errores

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 KNV9998 con la versión 1.6.1 del Sincronizador de configuración.

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 configmanagement.gke.io/namespace-selector. Los NamespaceSelectors solo se pueden declarar para los objetos con permisos de espacio de nombres.

Quita configmanagement.gke.io/namespace-selector del campo metadata.annotations.

El único parámetro de configuración válido para la anotación de administración es configmanagement.gke.io/managed=disabled. Este parámetro de configuración se usa para dejar de administrar de forma explícita un recurso en el repositorio de Git y dejar el archivo de configuración registrado. La anotación configmanagement.gke.io/managed=enabled no es necesaria.

Asegúrate de que la anotación de administración sea configmanagement.gke.io/managed=disabled.

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 kubectl --validate.

Si nomos vet devuelve este error en un tipo con group: configsync.gke.io, como RepoSync, descarga v1.6.0-rc.6 o una versión posterior de la página de descargas para resolverlo.

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 configmanagement.gke.io.

Asegúrate de usar una de las siguientes anotaciones admitidas:

Las configuraciones no deben tener etiquetas con claves que comiencen con configmanagement.gke.io/. Este prefijo de clave de etiqueta está reservado para que lo use Sincronizador de configuración.

Actualiza las etiquetas identificadas en el mensaje de error. Por ejemplo, si intentaste declarar una etiqueta llamada
configmanagement.gke.io/example-label: label-value,
podrías cambiarla a
example-label: label-value.

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 system/ del repositorio. Esta configuración debe incluir la información obligatoria, como la versión semántica del repositorio.

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 namespaces/.

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 system/.

Mueve el recurso al que se hace referencia en el mensaje de error fuera del directorio system/. Para obtener más información, consulta Estructura del repositorio jerárquico.

El campo spec.version en la configuración del repositorio representa la versión semántica del repositorio. Este error indica que estás usando una versión no compatible.

Si el formato del repositorio es compatible con la versión admitida, actualiza el campo spec.version. Si necesitas realizar una actualización, sigue las instrucciones de las notas de la versión.

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 metadata.name.

Agrega el campo metadata.name a los archivos de configuración problemáticos.

No se permite el tipo Repo.configmanagement.gke.io si sourceFormat se establece en unstructured.

Quita la configuración problemática o convierte tu repositorio para que use sourceFormat: hierarchy.

Si usas un repositorio jerárquico, solo puedes declarar tipos HierarchyConfig y Repo en el directorio system/.

Asegúrate de que cualquier configuración declarada en el directorio system/ sea uno de los tipos permitidos. Si no es así, muévelo a otro directorio.

Está prohibido declarar los espacios de nombres config-management-system, resource-group-system y config-management-monitoring, o los recursos dentro de ellos.

Si declaraste el espacio de nombres config-management-system, quítalo y quita cualquier archivo de configuración en ese espacio de nombres.

Si declaraste los espacios de nombres resource-group-system o config-management-monitoring, deja de administrar el espacio de nombres del controlador:

  1. Actualiza el Sincronizador de configuración para dejar de administrar el espacio de nombres y cualquier recurso declarado debajo de él.
  2. Espera a que se realice una sincronización y, luego, confirma que los recursos correspondientes sigan disponibles en el clúster, pero no en nomos status.
  3. Quita el archivo YAML del espacio de nombres del controlador de la fuente.
  4. Permite que Config Sync reanude la administración de los recursos.

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 metadata.name proporcionado tiene un formato no válido.

Cambia el metadata.name para que cumpla con las siguientes condiciones:

  • Tener menos de 254 caracteres
  • Debe constar de caracteres alfanuméricos en minúscula, “-” o “.”.
  • Comenzar y terminar con un carácter alfanumérico

Si metadata.name no es válido y el recurso original lo admite, considera usar el campo spec.resourceID en su lugar para que no estés restringido por estas limitaciones. Para obtener más información, consulta Administra recursos con el campo resourceID.

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 namespaces/.

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 cluster/.

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 HierarchyConfig.

Quita el recurso problemático. Si deseas obtener más información sobre HierarchyConfig, consulta Inhabilita la herencia para un tipo de objeto.

Se detectó un valor no válido para HierarchyMode en un HierarchyConfig.

Cambia HierarchyMode a none o inherit. Si deseas obtener más información sobre HierarchyConfigs, consulta Inhabilita la herencia para un tipo de objeto.

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 metadata.ownerReference especificado.

Quita el campo status del repositorio de código fuente. En la configuración de terceros que no te pertenece, usa kustomize patches para quitar los campos status especificados en tus manifiestos de forma masiva.

Este HierarchyConfig hace referencia a un recurso que tiene alcance de clúster. No se permiten objetos con permiso de clúster en HierarchyConfig.

Actualiza el HierarchyConfig para que ya no haga referencia al recurso problemático.

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 metadata.namespace.

Quita el campo metadata.namespace de tu recurso con permiso de clúster.

Los recursos con alcance de espacio de nombres deben declarar metadata.namespace o metadata.annotations.configmanagement.gke.io/namespace-selector.

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 metadata.namespace no es un nombre de espacio de nombres de Kubernetes válido.

Actualiza el valor de metadata.namespace para que cumpla con las siguientes reglas:

  • Tiene una longitud de 63 caracteres o menos.
  • Solo puede incluir letras minúsculas (de la a a la z), dígitos (del 0 al 9) y guiones (“-”).
  • Comienza y termina con una letra minúscula o un dígito.

Se declaró un recurso en un espacio de nombres no administrado.

Quita la anotación configmanagement.gke.io/managed: disabled o agrégala al recurso declarado.

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 shipping solo puede administrar recursos en el espacio de nombres shipping. El valor de metadata.namespace es opcional. De forma predeterminada, Sincronizador de configuración supone que todos los recursos de un repositorio de espacio de nombres pertenecen a ese espacio de nombres.

Por ejemplo, si una configuración en el repositorio de espacio de nombres shipping declaró metadata.namespace: billing, recibirías un error.

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 nomos vet solo verifica los errores en un repositorio a la vez, por lo que no puede detectar este problema.

Un InvalidRepoSyncError informa que un RepoSync está configurado de forma incorrecta. Los objetos RepoSync deben configurarse correctamente para que Sincronizador de configuración sincronice la configuración de los repositorios de espacios de nombres.

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 .inventory.identifier y .inventory.namespace en el archivo Kptfile.

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 api-resources.txt de tu repositorio.

Sigue las instrucciones del mensaje de error. Por ejemplo, es posible que debas volver a ejecutar kubectl api-resources > api-resources.txt.

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 (configmanagement.gke.io/cluster-selector) y la anotación intercalada (configsync.gke.io/cluster-name-selector).

Quita una de las anotaciones del campo metadata.annotations.

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 kustomization.yaml en el directorio de sincronización de Git, agrega kustomization.yaml en el directorio de sincronización para activar el proceso de renderización o quita kustomization.yaml de todos los subdirectorios para omitir la renderización.

Si el error se debe a fallas en kustomize build, es posible que debas actualizar los parámetros de configuración de Kustomize en tu repositorio de Git. Puedes obtener una vista previa y validar los archivos de configuración actualizados de manera local con nomos hydrate y nomos vet, respectivamente. Si los archivos de configuración actualizados se renderizan de forma correcta, puedes enviar una confirmación nueva para corregir el error KNV1068.

Si se produce un error kustomize build cuando se extraen bases remotas de repositorios públicos, debes configurar spec.override.enableShellInRendering como true.

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: KNV2001: yaml: line 2: did not find expected node content path:.... Para resolver este problema, verifica tus archivos YAML y soluciona cualquier problema de configuración. Esto puede deberse a cualquier configuración de YAML dentro del repositorio.

Si el nombre o la ruta de acceso del archivo contienen caracteres especiales, es posible que veas un mensaje de error similar a KNV2001: yaml: control characters are not allowed path:/repo/source/.../._pod.yaml. En este ejemplo, ._pod.yaml no es un nombre de archivo válido. Para resolver este problema, quita los caracteres especiales de los nombres de los archivos o las rutas de acceso.

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:

  • Error de descubrimiento de la API
  • Tiempo de espera agotado de la solicitud o la respuesta del cliente o del servidor
  • Error de identidad, autenticación o autorización
  • Error de conectividad de red
  • El webhook rechazó la solicitud
  • El webhook no está en buen estado o no se puede acceder a él desde el servidor de la API

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 KNV2004, consulta Problemas conocidos.

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 el webhook de admisión del Sincronizador de configuración está habilitado, es posible que tu espacio de nombres esté atascado en la finalización. Para arreglarlo, ejecuta los siguientes pasos:

  1. Inhabilita el Sincronizador de configuración y espera hasta que todos los recursos estén limpios o en un estado estable. Por ejemplo, puedes ejecutar kubectl get ns para asegurarte de que se borren los espacios de nombres.
  2. Vuelve a habilitar el Sincronizador de configuración.
  3. Revierte la confirmación que borra todos los recursos.

Si deseas borrar el conjunto completo de recursos en administración, completa los siguientes pasos:

  1. Quita todos excepto un espacio de nombres o un recurso con permiso de clúster en una primera confirmación y permite que Sincronizador de configuración sincronice los cambios.
  2. Quita el recurso final en una segunda confirmación.

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 nomos status informa conflictos de controladores.

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 Repo en un clúster.

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.

Volver al principio

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

Error: cannot build exporters: error creating stackdriver exporter: cannot configure Google Cloud metric exporter: stackdriver: google: could not find default credentials.

Error: Permission monitoring.timeSeries.create denied (or the resource may not exist).

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 otel-collector en config-management-monitoring está en estado CrashLoopBackoff o es posible que veas un mensaje de error similar a los que se indican.

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 otel-collector para que se apliquen los cambios.
Si usas una solución de supervisión personalizada, pero bifurcaste el ConfigMap otel-collector-googlecloud predeterminado, verifica y vuelve a aplicar cualquier diferencia.

server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none

No se pudo verificar el certificado del servidor

Si el contenedor git-sync, helm-sync o oci-sync no puede recuperar artefactos, es posible que veas este mensaje de error.

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 caCertSecretRef se configuró correctamente en tu objeto RootSync o RepoSync, y también verificar si existe el objeto Secret.

A continuación, si el campo se configuró y el objeto Secret existe, asegúrate de que el objeto Secret contenga los certificados completos.
Según cómo se aprovisione la CA personalizada, los enfoques para verificar los certificados completos pueden variar.

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 correctamente

Si 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 denegado

Si 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.

Volver al principio

¿Qué sigue?