Problemas conocidos del Sincronizador de configuración

En esta página, se enumeran los problemas conocidos de las versiones compatibles del Sincronizador de configuración.

Muchos de los problemas que se enumeran aquí se corrigieron. La columna Versión corregida indica la versión en la que se introdujo la corrección. Para recibir esta corrección, actualiza a la versión que se indica o a una posterior.

Si formas parte del Google Developer Program, guarda esta página para recibir notificaciones cuando se publique una nota de la versión relacionada con ella. Para obtener más información, consulta Páginas guardadas.

Para filtrar los problemas conocidos por una versión del producto o una categoría de problema, selecciona los filtros en los siguientes menús desplegables.

Selecciona tu versión del Sincronizador de configuración:

Selecciona la categoría del problema:

O bien, filtra los problemas conocidos:

Categoría Versión identificada Versión corregida Problema y solución
Estado de los componentes 1.24.0

Los pods del Sincronizador de configuración se detienen durante la actualización a la versión 1.24.0 en clústeres migrados a Hub

Después de actualizar al Sincronizador de configuración 1.24.0, es posible que los campos que se quitaron (como readinessProbe y las verificaciones de estado para el sidecar otel-agent) persistan en los clústeres que se migraron a la administración de Hub. Debido a que se quitó el componente de verificación de estado detrás de readinessProbe, el contenedor otel-agent no se inicia, lo que provoca que los pods del Sincronizador de configuración se detengan.

Este problema solo afecta a los clústeres en los que el Sincronizador de configuración se instaló de forma manual con kubectl y, luego, se cambió a la administración de Hub. Esta falla se produce porque el proceso de migración controla la administración de campos de manera diferente a una instalación nueva. En el caso de los clústeres instalados de forma manual o los clústeres que instaló Hub inicialmente, los campos se quitan según lo previsto.

Solución:

Para resolver este problema, sigue las instrucciones para desinstalar el Sincronizador de configuración y, luego, volver a instalarlo a través de Hub.

Métricas 1.5.0 1.21.0

Se corrigió: Métricas informadas para paquetes borrados

Si borras un objeto RootSync o RepoSync, pero no borras el objeto ResourceGroup con el mismo nombre, el Sincronizador de configuración continúa informando las siguientes métricas para ese objeto ResourceGroup:

  • rg_reconcile_duration_seconds
  • resource_group_total
  • resource_count
  • ready_resource_count
  • resource_ns_count
  • cluster_scoped_resource_count
  • crd_count
  • kcc_resource_count
  • pipeline_error_observed
El objeto ResourceGroup solo se borra automáticamente si se habilitó la propagación de eliminación antes de borrar el objeto RootSync o RepoSync.

Solución:

Borra el objeto ResourceGroup:

kubectl delete resourcegroup RESOURCE_GROUP_NAME -n config-management-system

Reemplaza RESOURCE_GROUP_NAME por el nombre del ResourceGroup objeto que se debe borrar. Para obtener más información sobre la asignación de nombres, consulta Controlador de ResourceGroup y objetos ResourceGroup.ResourceGroup

Estado de los componentes 1.15.0

Conciliador no programable

Los conciliadores del Sincronizador de configuración requieren diferentes cantidades de recursos, dependiendo de la configuración de RootSync o RepoSync. Algunas configuraciones requieren más recursos que otras.

Si un conciliador no es programable, es posible que se deba a que solicita más recursos de los que están disponibles en tus nodos.

Si usas clústeres de GKE en modo estándar, las solicitudes de recursos del conciliador se establecen en un valor muy bajo. Esta configuración se eligió en un intento de permitir la programación, incluso si esto generara limitaciones y un rendimiento lento, de modo que el Sincronizador de configuración funcione en clústeres y nodos pequeños. Sin embargo, en los clústeres de GKE Autopilot, las solicitudes del conciliador se establecen en un valor más alto para representar de manera más realista el uso durante la sincronización.

Solución:

GKE Autopilot o Standard con el aprovisionamiento automático de nodos habilitado deberían poder ver cuántos recursos se solicitan y crear nodos del tamaño adecuado para permitir la programación. Sin embargo, si configuras de forma manual los nodos o los tamaños de las instancias de nodos, es posible que debas ajustar esos parámetros para satisfacer los requisitos de recursos del pod del conciliador.

Métricas 1.15.0

No se pudo realizar la exportación. Permiso denegado

De forma predeterminada, cuando el administrador del conciliador detecta las credenciales predeterminadas de la aplicación, el otel-collector se configura para exportar métricas a Prometheus, Cloud Monitoring y Monarch.

Solución:

otel-collector registra errores si no configuraste Cloud Monitoring o no personalizaste los filtros de métricas y Cloud Monarch.

Métricas 1.15.0

otel-collector falla con una configuración personalizada

Si intentas modificar o borrar uno de los ConfigMaps predeterminados, otel-collector o otel-collector-google-cloud, es posible que el otel-collector muestre un error o falle por no poder cargar el ConfigMap requerido.

Solución:

Para personalizar la configuración de exportación de métricas, crea un ConfigMap llamado otel-collector-custom en el config-management-monitoring espacio de nombres.

Corrección

El Sincronizador de configuración se enfrenta a sí mismo

Es posible que el Sincronizador de configuración parezca estar en una pelea de controladores. consigo mismo. Esto ocurre si configuras el valor predeterminado para un campo opcional de un recurso en el repositorio de Git. Por ejemplo, configurar apiGroup: "" como asunto de una RoleBinding genera este problema porque el campo apiGroup es opcional y el valor predeterminado es una cadena vacía. Los valores predeterminados de los campos string, booleano, y número entero son "", false, y 0 (respectivamente).

Solución:

Quita el campo de la declaración de recursos.

Corrección

El Sincronizador de configuración se enfrenta a los recursos de Config Connector

Es posible que el Sincronizador de configuración parezca estar enfrentando a Config Connector por un recurso, por ejemplo, un StorageBucket. Este problema ocurre si no estableces el valor de un campo opcional de un recurso spec.lifecycleRule.condition.withState en la fuente de información.

Solución:

Para evitar este problema, agrega el campo withState=ANY en la declaración de recursos. Como alternativa, puedes abandonar y, luego, volver a adquirir el recurso con la cnrm.cloud.google.com/state-into-spec: absent anotación.

Fuente de información 1.20.0 1.21.3

Los bucles de falla del contenedor git-sync después de que un archivo de bloqueo de Git queda huérfano

Si ves que el contenedor git-sync falla en bucle con errores similares a los siguientes en el registro del contenedor git-sync, es posible que una invocación anterior de git haya fallado y haya dejado un archivo de bloqueo huérfano en el contenedor:

    {"logger":""..."msg":"repo contains lock file","error":null,"path":"/repo/source/.git/shallow.lock"}
    ...runtime error: invalid memory address or nil pointer dereference
    

Solución:

Para solucionar este problema, reinicia el pod del conciliador afectado para darle un nuevo volumen efímero:

    kubectl delete pod -n config-management-system RECONCILER_NAME
    
Reemplaza RECONCILER_NAME por el nombre del conciliador del objeto RootSync o RepoSync.
Sincronizando 1.7.0 1.21.0

Se corrigió: No se respeta la anotación de mutación de ignorar

Un error en el conciliador del Sincronizador de configuración hace que aplique cambios de las configuraciones declaradas, incluso cuando está presente la anotación client.lifecycle.config.k8s.io/mutation. Esto puede hacer que se anule el estado del objeto en el clúster.

Solución:

Puedes dejar de administrar el objeto administrado si agregas la configmanagement.gke.io/managed: disabled anotación. Sin embargo, inhabilitar la administración impide que el Sincronizador de configuración vuelva a crear el objeto si se borra del clúster. También impide que se apliquen más actualizaciones en la fuente de información.

Sincronizando 1.15.0

Gran cantidad de solicitudes PATCH ineficaces en los registros de auditoría

El remediador del Sincronizador de configuración usa la ejecución de prueba para detectar el desvío. Esto puede hacer que las solicitudes PATCH aparezcan en el registro de auditoría, incluso cuando PATCH no persiste, porque el registro de auditoría no distingue entre las ejecuciones de prueba y las solicitudes normales.

Solución:

Debido a que el registro de auditoría no puede distinguir entre las solicitudes de ejecución de prueba y las que no son de ejecución de prueba puedes ignorar las solicitudes PATCH.
Sincronizando 1.7.0 1.21.0

Se corrigió: No se pudo escribir el inventario actualizado en el clúster

Si el Sincronizador de configuración no puede actualizar el estado de un objeto ResourceGroup, es posible que encuentres un error intermitente en los registros del conciliador que sea similar al siguiente:

    KNV2009: task failed (action: "Inventory", name: "inventory-set-0"): failed to write updated inventory to cluster: Operation cannot be fulfilled on resourcegroups.kpt.dev "root-sync": the object has been modified; please apply your changes to the latest version and try again
    

Este error se debe a una condición de carrera entre el conciliador y el controlador de ResourceGroup. Es posible que el controlador de ResourceGroup actualice el estado de ResourceGroup antes de que el conciliador pueda actualizar la especificación de ResourceGroup, lo que provoca el error KNV2009.

Solución:

Este problema no tiene solución. El error debería resolverse por sí solo.

Terraform Versión 5.41.0 de Terraform

El Sincronizador de configuración no se puede instalar ni actualizar con Terraform

La versión 5.41.0 de Terraform introdujo un nuevo campo en el recurso google_gke_hub_feature_membership: config_sync.enabled. Debido a que el valor predeterminado de este campo es false, si no se establece de forma explícita en true, se produce un error en las instalaciones o actualizaciones del Sincronizador de configuración cuando se usa la versión 5.41.0 de Terraform o versiones posteriores. También es posible que veas un mensaje de error que indique git spec not included in configmanagement spec si se produce este problema.

Solución:

  • Si usas el recurso google_gke_hub_feature_membership, establece de forma manual config_sync.enabled en true.
  • Si usas el acm submódulo, te recomendamos que cambies a una forma alternativa de instalar el Sincronizador de configuración. Si no puedes cambiar, actualiza a la v33.0.0.

Google Cloud Consola de

Faltan errores de datos en el panel del Sincronizador de configuración en la Google Cloud Consola de Google Cloud

Es posible que veas errores como "faltan datos" o "credenciales de clúster no válidas" para los clústeres del Sincronizador de configuración en los paneles de la Google Cloud Consola de Google Cloud. Este problema puede ocurrir cuando no accedes a tus clústeres de GDC (VMware) o GDC (Bare Metal).

Solución:

Si ves estos tipos de errores en la Google Cloud consola en tus clústeres de GDC (VMware) o GDC (Bare Metal), asegúrate de haber accedido a tus clústeres con el Servicio de identidad de GKE o la puerta de enlace de conexión.

Sincronizando 1.21.0

Se corrigió: El Sincronizador de configuración impide las actualizaciones de recursos abandonados

Antes de la versión 1.21.0, un objeto RootSync o RepoSync borrado puede dejar atrás varias etiquetas y anotaciones que usa el Sincronizador de configuración para realizar un seguimiento de estos objetos de recursos.

Estas etiquetas y anotaciones pueden causar los siguientes efectos secundarios después de que se borra un objeto RootSync o RepoSync:

  • Otros objetos RepoSync no pueden tomar la propiedad de objetos administrados anteriormente.
  • Si la prevención de desvíos está habilitada, esto puede hacer que el Sincronizador de configuración rechace los cambios en los recursos abandonados.

Herramienta de línea de comandos nomos 1.17.0

La CLI de nomos no admite el complemento de autenticación oidc

Es posible que veas errores como no Auth Provider found for name "oidc" cuando usas la herramienta de línea de comandos nomos. Este problema puede ocurrir cuando usas el complemento de autenticación oidc.

Solución:

No hay ninguna solución. El complemento de autenticación oidc se volverá a agregar en una versión posterior.

Volver al principio

¿Qué sigue?