Supervisa objetos RootSync y RepoSync

En esta página, se muestran diferentes formas de supervisar los objetos RootSync y RepoSync. Por ejemplo, es posible que desees verificar si tu confirmación más reciente en una fuente de confianza se aplica a un clúster y se concilia de forma correcta.

Visualiza confirmaciones sincronizadas

Para verificar qué confirmación se sincroniza con el clúster, consulta el campo .status.sync en el objeto RootSync o RepoSync.

  • Para ver las confirmaciones sincronizadas de un objeto RootSync, ejecuta el siguiente comando:

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
    

    Reemplaza ROOT_SYNC_NAME por el nombre del objeto RootSync.

  • Para ver las confirmaciones sincronizadas de un objeto RepoSync, ejecuta el siguiente comando:

    kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
    

    Reemplaza lo siguiente:

    • REPO_SYNC_NAME: Es el nombre del objeto RepoSync.
    • REPO_SYNC_NAMESPACE: Es el espacio de nombres en el que creaste el repositorio de espacios de nombres.

El resultado de estos comandos te muestra el valor de la confirmación de origen y la confirmación sincronizada. Por ejemplo, si ejecutas el comando para RepoSync, verás un resultado similar al siguiente:

NAME        RENDERINGCOMMIT                            SOURCECOMMIT                               SYNCCOMMIT
root-sync   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72

El valor en la columna RENDERINGCOMMIT es la confirmación que procesa hydration-controller. Si no se necesita ninguna renderización, el valor es el mismo que el de la columna SOURCECOMMIT. El valor de la columna SOURCECOMMIT es la confirmación de la fuente de confianza que debe sincronizarse con el clúster. El valor en la columna SYNCCOMMIT es la confirmación que se implementa en el clúster. Si los dos valores de las columnas SOURCECOMMIT y SYNCCOMMIT son los mismos, la confirmación esperada se implementó en el clúster.

Confirma que se concilian los recursos de la confirmación

Debido a que ResourceGroups capturan el estado de conciliación de los recursos administrados declarados en la fuente de información, puedes examinarlos para confirmar si los recursos de la confirmación están conciliados.

El objeto ResourceGroup tiene el mismo espacio de nombres y nombre que el objeto RootSync o RepoSync. Por ejemplo, para el objeto RootSync con el nombre root-sync en el espacio de nombres config-management-system, el objeto ResourceGroup correspondiente también es root-sync en el espacio de nombres config-management-system.

  • A fin de obtener el objeto ResourceGroup para un objeto RootSync, haz lo siguiente:

    kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
    
  • A fin de obtener el objeto ResourceGroup para un objeto RepoSync, haz lo siguiente:

    kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
    

    Reemplaza lo siguiente:

    • ROOT_SYNC_NAME: Es el nombre del objeto ResourceGroup que deseas buscar.
    • REPO_SYNC_NAME: Es el nombre del objeto ResourceGroup que deseas buscar.
    • REPO_SYNC_NAMESPACE: Es el nombre del objeto ResourceGroup que deseas buscar.

Para confirmar que se conciliaron los recursos de la confirmación, busca lo siguiente en el resultado:

  • El .status.observedGeneration es igual al valor del campo .metadata.generation en el objeto ResourceGroup.
  • Las condiciones Stalled y Reconciling tienen status como "False".
  • Cada elemento del campo .status.resourceStatuses tiene el estado Current.

Ver errores

Los objetos RootSync y RepoSync usan el campo status para realizar un seguimiento de los errores encontrados cuando se sincronizan los archivos de configuración de la fuente de información con un clúster.

  • Para ver el estado de un objeto RootSync, ejecuta el siguiente comando:

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
    

    Reemplaza ROOT_SYNC_NAME por el nombre del objeto RootSync.

  • Para ver el estado de un objeto RepoSync, ejecuta el siguiente comando:

    kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
    

    Reemplaza lo siguiente:

    • REPO_SYNC_NAME: Es el nombre del objeto RepoSync.
    • NAMESPACE: Es el espacio de nombres en el que creaste el repositorio de espacios de nombres.

Para obtener más información sobre los subcampos del campo status, consulta Estado de los objetos.

Vizualiza detalles del objeto

Para ver los detalles de los objetos RootSync y RepoSync, y obtener más información sobre posibles errores, usa el comando kubectl describe.

El resultado de este comando incluye eventos, que pueden ser particularmente útiles para depurar problemas, como contenedores con restricciones de memoria (OOMKilled), fallas de programación o errores de extracción de imágenes.

Para obtener un formato más legible, agrega -o yaml a los siguientes comandos a fin de convertir el resultado a YAML. Este formato es especialmente útil cuando necesitas examinar parámetros, anotaciones o especificaciones de recursos específicos.

  • Para ver los detalles de un objeto RootSync, ejecuta el siguiente comando:

    kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
    

    Reemplaza ROOT_SYNC_NAME por el nombre del objeto RootSync.

  • Para ver los detalles de un objeto RepoSync, ejecuta el siguiente comando:

    kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
    

    Reemplaza lo siguiente:

    • REPO_SYNC_NAME: Es el nombre del objeto RepoSync.
    • NAMESPACE: Es el espacio de nombres en el que creaste el repositorio de espacios de nombres.

Visualiza si un recurso está listo

Para saber si los recursos sincronizados con el clúster están listos, consulta el estado de conciliación. Por ejemplo, si ves el estado de conciliación, puedes ver si una implementación sincronizada está lista para entregar tráfico.

Para una fuente de información sincronizada con el clúster, los estados de conciliación de todos los recursos se agregan en un recurso llamado ResourceGroup. Por cada objeto RootSync o RepoSync, se genera un ResourceGroup para capturar el conjunto de recursos aplicados al clúster y agregar sus estados.

  • Para ver el estado de conciliación del objeto RootSync, ejecuta el siguiente comando:

    kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
    

    Reemplaza ROOT_SYNC_NAME por el nombre del objeto RootSync.

  • Para ver el estado de conciliación del objeto RepoSync, ejecuta el siguiente comando:

    kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
    

    Reemplaza lo siguiente:

    • REPO_SYNC_NAME: Es el nombre del objeto RepoSync.
    • NAMESPACE: Es el espacio de nombres en el que creaste el repositorio de espacios de nombres.

En el resultado, verás todos los estados de los recursos de ResourceGroup. Por ejemplo, el siguiente resultado muestra que una implementación llamada nginx-deployment está lista:

resourceStatuses:
- group: apps
  kind: Deployment
  name: nginx-deployment
  namespace: default
  status: Current

Ver registros

Por cada objeto RootSync y RepoSync que creas, el Sincronizador de configuración crea una Deployment de conciliador para realizar la sincronización. En esta sección, se explica cómo ver los registros de estos conciliadores. Ver los registros puede ser útil cuando se depura un problema, ya que proporciona información adicional sobre el progreso, las advertencias y los errores más allá de lo que está disponible en el estado de los objetos RootSync y RepoSync.

  • Para ver los registros del conciliador RootSync o RepoSync, ejecuta el siguiente comando:

    kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
    

    Reemplaza lo siguiente:

    • RECONCILER_NAME: Es el nombre del conciliador del objeto RootSync o RepoSync.

      • Para RootSync, el nombre del conciliador es root-reconciler-ROOT_SYNC_NAME o root-reconciler si el nombre de RootSync es root-sync.

      • Para RepoSync, el nombre del conciliador es ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH o ns-reconciler-NAMESPACE si el nombre de RepoSync es repo-sync, en el que NAMESPACE es el espacio de nombres en el que creaste tu objeto RepoSync.

    • CONTAINER_NAME: El nombre del contenedor debe ser uno de los siguientes valores: reconciler, git-sync, hydration-controller, oci-sync o helm-sync. Para obtener más información sobre estos contenedores, consulta Contenedores de conciliador.

Configura el nivel de registro del conciliador de RootSync o RepoSync

Para incluir más información en los registros del contenedor, configura la verbosidad de los registros. De forma predeterminada, la mayoría de los contenedores tienen un valor predeterminado de 0 para la verbosidad del registro. Las excepciones a esto son los contenedores git-sync y otel-agent que tienen un valor predeterminado de 5.

Cuando cambies la verbosidad del registro, ten en cuenta que hacerlo genera costos de registro más altos porque hay un mayor volumen de datos.

Para cambiar la verbosidad del registro, usa el campo .spec.override.logLevels como se muestra en el siguiente ejemplo:

apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
  name: root-sync
  namespace: config-management-system
spec:
  override:
    logLevels:
    - containerName: "reconciler"
      logLevel: 0
    - containerName: "git-sync"
       logLevel: 10

El valor del campo containerName debe ser uno de los siguientes: reconciler, git-sync, hydration-controller, oci-sync o helm-sync.

Para confirmar que se configuró la verbosidad del registro, ejecuta el siguiente comando:

kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml

La verbosidad del registro se puede encontrar como uno de los args dentro de spec.template.spec.containers[] y es similar a -v=0, en el que 0 es la verbosidad del registro actual. En este ejemplo, un valor de verbosidad de registro de 0 solo registraría eventos críticos.