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.

Se corrigieron muchos de los problemas que se indican aquí. 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 versión del producto o categoría del problema, selecciona los filtros en los siguientes menús desplegables.

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

Selecciona la categoría de tu problema:

También puedes filtrar los problemas conocidos:

Categoría Versión identificada Versión corregida Problema y solución
Estado del componente 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 al Hub

Después de actualizar a 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 del Hub. Debido a que se quita 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ó manualmente con kubectl y, luego, se cambió a la administración del Hub. Este error se produce porque el proceso de migración maneja la administración de campos de manera diferente a una instalación nueva. En el caso de los clústeres instalados manualmente o los que se instalaron inicialmente con Hub, los campos se quitan según lo previsto.

Solución alternativa:

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

Métricas 1.5.0 1.21.0

Se corrigió el problema por el que se informaban métricas para los paquetes borrados

Si borras un objeto RootSync o RepoSync, pero no borras el objeto ResourceGroup con el mismo nombre, el Sincronizador de configuración seguirá registrando 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 que se borrara el objeto RootSync o RepoSync.

Solución alternativa:

Borra el objeto ResourceGroup:

kubectl delete resourcegroup RESOURCE_GROUP_NAME -n config-management-system

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

Estado del componente 1.15.0

El conciliador no se puede programar

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

Si un reconciliador no se puede programar, 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 reconciliador se establecen en un valor muy bajo. Este parámetro de configuración se eligió en un intento por permitir la programación, incluso si esto generara limitaciones y un rendimiento lento, de modo que Sincronizador de configuración funcione en clústeres y nodos pequeños. Sin embargo, en los clústeres de GKE Autopilot, las solicitudes del reconciliador se establecen en un valor más alto para representar de manera más realista el uso durante la sincronización.

Solución alternativa:

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 manualmente los nodos o los tamaños de las instancias de nodos, es posible que debas ajustar esos parámetros de configuración para satisfacer los requisitos de recursos del Pod de reconciliación.

Métricas 1.15.0

No se pudo realizar la exportación. Permiso denegado

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

Solución alternativa:

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

Métricas 1.15.0

otel-collector falla con la configuración personalizada

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

Solución alternativa:

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

Acciones

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

Es posible que el Sincronizador de configuración parezca estar en una pelea de controladores. con sí misma. Este problema ocurre si configuras el valor predeterminado para un campo opcional de un recurso en el repositorio de Git. Por ejemplo, establecer apiGroup: "" para el asunto de un 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 de cadena, booleanos y enteros son "", false y 0 (respectivamente).

Solución alternativa:

Quita el campo de la declaración de recursos.

Acciones

El Sincronizador de configuración compite con los recursos de Config Connector

Es posible que parezca que el Sincronizador de configuración está luchando contra Config Connector por un recurso, por ejemplo, un StorageBucket. Este problema ocurre si no configuras el valor de un campo opcional de un recurso spec.lifecycleRule.condition.withState en la fuente de la verdad.

Solución alternativa:

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 anotación cnrm.cloud.google.com/state-into-spec: absent.

Fuente de información 1.20.0 1.21.3

El contenedor git-sync falla en bucle después de que se pierde un archivo de bloqueo de Git

Si ves que el contenedor git-sync se bloquea en un bucle con errores similares a los siguientes en el registro del contenedor git-sync, es posible que una invocación git anterior 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 alternativa:

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

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

Se corrigió el problema por el que no se respetaba la anotación de ignorar la mutación

Un error en el reconciliador del Sincronizador de configuración hace que aplique cambios de las configuraciones declaradas incluso cuando la anotación client.lifecycle.config.k8s.io/mutation está presente. Esto podría provocar que se sobrescriba el estado del objeto en el clúster.

Solución alternativa:

Puedes dejar de administrar el objeto administrado agregando la anotación configmanagement.gke.io/managed: disabled. 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 evita que se apliquen más actualizaciones en la fuente de verdad.

Sincronizando 1.15.0

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

El remediador de Sincronizador de configuración usa ejecuciones de prueba para detectar desvíos. Esto puede hacer que las solicitudes de PATCH aparezcan en el registro de auditoría, incluso cuando PATCH no se conserve, ya que el registro de auditoría no distingue entre las ejecuciones de prueba y las solicitudes normales.

Solución alternativa:

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

Se corrigió: Error al 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 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 reconciliador y el controlador de ResourceGroup. Es posible que el controlador de ResourceGroup actualice el estado de ResourceGroup antes de que el reconciliador pueda actualizar la especificación de ResourceGroup, lo que provoca el error KNV2009.

Solución alternativa:

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

Terraform Versión 5.41.0 de Terraform

No se puede instalar ni actualizar el Sincronizador de configuración 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. Dado que el valor predeterminado de este campo es false, si no se establece de forma explícita en true, las instalaciones o actualizaciones del Sincronizador de configuración fallarán cuando se use la versión 5.41.0 o posterior de Terraform. También es posible que veas un mensaje de error que indique git spec not included in configmanagement spec si ocurre este problema.

Solución alternativa:

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

Consola deGoogle Cloud

Faltan errores de datos en el panel del Sincronizador de configuración en la 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 consola de Google Cloud . Este problema puede ocurrir cuando no accediste a tus clústeres de GDC (VMware) o GDC (bare metal).

Solución alternativa:

Si ves este tipo 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 Servicio de identidad de GKE o puerta de enlace de Connect.

Sincronizando 1.21.0

Se corrigió un problema por el que el Sincronizador de configuración impedía las actualizaciones de recursos abandonados

Antes de la versión 1.21.0, un objeto RootSync o RepoSync borrado podía dejar atrás varias etiquetas y anotaciones que el Sincronizador de configuración usa para hacer 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 de oidc

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

Solución alternativa:

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

Volver al principio

¿Qué sigue?