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 aplicó a un clúster y se concilió correctamente.
Visualiza confirmaciones sincronizadas
Para verificar 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-system
Reemplaza
ROOT_SYNC_NAME
por 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_NAMESPACE
Reemplaza 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
, sigue estos pasos:kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
Para obtener el objeto ResourceGroup de un objeto
RepoSync
, sigue estos pasos:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
Reemplaza 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 estén conciliados, busca lo siguiente en el resultado:
.status.observedGeneration
es igual al valor del campo.metadata.generation
en el objeto ResourceGroup.- La condición
Stalled
y la condiciónReconciling
tienenstatus
como"False"
. - Cada elemento del campo
.status.resourceStatuses
tiene el estadoCurrent
.
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 yaml
Reemplaza
ROOT_SYNC_NAME
por 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 yaml
Reemplaza 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 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 para 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 objetoRootSync
.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
: 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 yaml
Reemplaza
ROOT_SYNC_NAME
por 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 yaml
Reemplaza 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 agentes de conciliación. 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 de los objetos RootSync
y RepoSync
.
Para ver los registros del conciliador de
RootSync
oRepoSync
, ejecuta el siguiente comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
Reemplaza lo siguiente:
RECONCILER_NAME
: Es el nombre del agente de conciliación del objetoRootSync
oRepoSync
.Para
RootSync
, el nombre del agente de conciliación esroot-reconciler-ROOT_SYNC_NAME
oroot-reconciler
si el nombre deRootSync
esroot-sync
.Para
RepoSync
, el nombre del conciliador esns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ons-reconciler-NAMESPACE
si el nombre deRepoSync
esrepo-sync
, en el queNAMESPACE
es 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-sync
ohelm-sync
. Para obtener más información sobre estos contenedores, consulta Contenedores de Reconciler.
Configura el nivel de registro del conciliador 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 de los registros. 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 la verbosidad de los registros esté configurada, 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 se ve como -v=0
, donde 0 es la verbosidad del registro actual. En este ejemplo, un valor de verbosidad de registro de 0 solo registraría los eventos críticos.