En esta página, se muestran diferentes formas de supervisar los objetos RootSync y RepoSync.
Por ejemplo, es posible que desees verificar si tu última confirmación en una fuente de verdad se aplicó a un clúster y se concilió correctamente.
Visualiza confirmaciones sincronizadas
Para comprobar qué confirmación se sincroniza con el clúster, verifica 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-systemReemplaza
ROOT_SYNC_NAMEpor el nombre del objetoRootSync.Para ver las confirmaciones sincronizadas de un objeto
RepoSync, ejecuta el siguiente comando:kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACEReemplaza lo siguiente:
REPO_SYNC_NAME: el nombre del objetoRepoSync.REPO_SYNC_NAMESPACE: el espacio de nombres en el que creaste el repositorio del espacio 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 en la columna SOURCECOMMIT es la confirmación de la fuente de información que se debe sincronizar 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 los recursos de la confirmación estén conciliados
Debido a que ResourceGroups captura 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 el mismo 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.
Para obtener el objeto ResourceGroup de un objeto
RootSync, haz lo siguiente:kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yamlPara obtener el objeto ResourceGroup de un objeto
RepoSync, haz lo siguiente:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yamlReemplaza lo siguiente:
ROOT_SYNC_NAME: el nombre del objeto ResourceGroup que deseas buscar.REPO_SYNC_NAME: el nombre del objeto ResourceGroup que deseas buscar.REPO_SYNC_NAMESPACE: el nombre del objeto ResourceGroup que deseas buscar.
Para confirmar que los recursos de la confirmación se concilian, busca lo siguiente en el resultado:
- El valor de
.status.observedGenerationes igual al valor del campo.metadata.generationen el objeto ResourceGroup. - La condición
Stalledtiene unstatusde"False". - Cada elemento de
.status.resourceStatusestiene unactuationdeSucceeded, unreconciledeSucceededy unstatusdeCurrent.
Ver errores
Los objetos RootSync y RepoSync usan el campo status para hacer un seguimiento de los errores que se encuentran cuando se sincronizan las configuraciones 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 yamlReemplaza
ROOT_SYNC_NAMEpor el nombre del objetoRootSync.Para ver el estado de un objeto
RepoSync, ejecuta el siguiente comando:kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yamlReemplaza lo siguiente:
REPO_SYNC_NAME: el nombre del objetoRepoSync.NAMESPACE: el espacio de nombres en el que creaste el repositorio del espacio 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 descubrir 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 que enfrentan restricciones de memoria (OOMKilled), fallas de programación o errores de extracción de imágenes.
Para obtener un formato más legible, convierte el resultado a YAML agregando -o yaml a los siguientes comandos. 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-systemReemplaza
ROOT_SYNC_NAMEpor el nombre del objetoRootSync.Para ver los detalles de un objeto
RepoSync, ejecuta el siguiente comando:kubectl describe reposync REPO_SYNC_NAME -n NAMESPACEReemplaza lo siguiente:
REPO_SYNC_NAME: el nombre del objetoRepoSync.NAMESPACE: el espacio de nombres en el que creaste el repositorio del espacio 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. Para cada objeto RootSync o RepoSync, se genera un ResourceGroup para capturar el conjunto de recursos aplicados al clúster y los estados agregados.
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 yamlReemplaza
ROOT_SYNC_NAMEpor el nombre del objetoRootSync.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 yamlReemplaza lo siguiente:
REPO_SYNC_NAME: el nombre del objetoRepoSync.NAMESPACE: el espacio de nombres en el que creaste el repositorio del espacio 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
Para cada objeto RootSync y RepoSync que crees, 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 reconciliadores. Ver los registros puede ayudar a depurar 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 del objeto RootSync y RepoSync.
Para ver los registros del conciliador de
RootSyncoRepoSync, ejecuta el siguiente comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAMEReemplaza lo siguiente:
RECONCILER_NAME: Es el nombre del reconciliador del objetoRootSyncoRepoSync.Para
RootSync, el nombre del reconciliador esroot-reconciler-ROOT_SYNC_NAMEoroot-reconcilersi el nombre deRootSyncesroot-sync.Para
RepoSync, el nombre del reconciliador esns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTHons-reconciler-NAMESPACEsi el nombre deRepoSyncesrepo-sync, dondeNAMESPACEes el espacio de nombres en el que creaste tu objetoRepoSync.
CONTAINER_NAME: El nombre del contenedor debe ser uno de los siguientes valores:reconciler,git-sync,hydration-controller,oci-syncohelm-sync. Para obtener más información sobre estos contenedores, consulta Contenedores del conciliador.
Cómo configurar el nivel de registro del conciliador de RootSync o RepoSync
Para incluir más información en los registros del contenedor, configura el nivel de detalle de los registros. De forma predeterminada, la mayoría de los contenedores tienen un valor predeterminado de 0 para el nivel de detalle 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 de los registros, ten en cuenta que aumentarla genera costos de registro más altos, ya que se registra un mayor volumen de datos.
Para cambiar la verbosidad del registro de cambios, 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ó el nivel de detalle del registro, ejecuta el siguiente comando:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
El nivel de detalle del registro se puede encontrar como uno de los args dentro de spec.template.spec.containers[] y se ve como -v=0, donde 0 es el nivel de detalle del registro actual. En este ejemplo, un valor de detalle de registro de 0 registraría solo los eventos críticos.