En esta página se muestran diferentes formas de monitorizar los objetos RootSync
y RepoSync
.
Por ejemplo, puede que quieras verificar si la última confirmación de un origen de la información
se ha aplicado a un clúster y se ha conciliado correctamente.
Ver las confirmaciones sincronizadas
Para comprobar qué confirmación se ha sincronizado con el clúster, consulta el campo .status.sync
del 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
Sustituye
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
Haz los cambios siguientes:
REPO_SYNC_NAME
: el nombre del objetoRepoSync
.REPO_SYNC_NAMESPACE
: el espacio de nombres en el que has creado el repositorio de espacio de nombres.
El resultado de estos comandos muestra el valor de la confirmación de origen y la confirmación sincronizada. Por ejemplo, si has ejecutado el comando de RepoSync, verás un resultado similar al siguiente:
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
El valor de la columna RENDERINGCOMMIT
es la confirmación que procesa el hydration-controller
. Si no es necesario renderizar, 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 información veraz que se debe sincronizar con el clúster. El valor de 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 iguales, el commit esperado se ha implementado en el clúster.
Confirma que los recursos del commit se han conciliado
Como ResourceGroups registra el estado de conciliación de los recursos gestionados declarados en la fuente de información veraz, puedes examinarlos para confirmar si los recursos de la confirmación se han conciliado.
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
.
Para obtener el objeto ResourceGroup de un objeto
RootSync
:kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
Para obtener el objeto ResourceGroup de un objeto
RepoSync
, haz lo siguiente:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
Haz los cambios siguientes:
ROOT_SYNC_NAME
: el nombre del objeto ResourceGroup que quieras buscar.REPO_SYNC_NAME
: el nombre del objeto ResourceGroup que quieras buscar.REPO_SYNC_NAMESPACE
: el nombre del objeto ResourceGroup que quieras buscar.
Para confirmar que los recursos de la confirmación se han conciliado, busca lo siguiente en el resultado:
- El valor de
.status.observedGeneration
es igual al valor del campo.metadata.generation
del objeto ResourceGroup. - La condición
Stalled
tiene unstatus
de"False"
. - Cada elemento de
.status.resourceStatuses
tiene unactuation
deSucceeded
, unreconcile
deSucceeded
y unstatus
deCurrent
.
Ver errores
Los objetos RootSync
y RepoSync
usan el campo status
para registrar los errores que se producen al sincronizar las configuraciones de la fuente de información veraz con un clúster.
Para ver el estado de un
RootSync
objeto, ejecuta el siguiente comando:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
Sustituye
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
Haz los cambios siguientes:
REPO_SYNC_NAME
: el nombre del objetoRepoSync
.NAMESPACE
: el espacio de nombres en el que has creado el repositorio de espacio de nombres.
Para obtener más información sobre los subcampos del campo status
, consulta Estado de los objetos.
Ver los detalles de un 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 especialmente útiles para depurar problemas como los contenedores que tienen restricciones de memoria (OOMKilled), los fallos de programación o los errores de extracción de imágenes.
Para que el formato sea más legible, convierte la salida a YAML añadiendo -o yaml
a los siguientes comandos. Este formato es especialmente útil cuando necesitas examinar parámetros, anotaciones o especificaciones de recursos concretos.
Para ver los detalles de un objeto
RootSync
, ejecuta el siguiente comando:kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
Sustituye
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
Haz los cambios siguientes:
REPO_SYNC_NAME
: el nombre del objetoRepoSync
.NAMESPACE
: el espacio de nombres en el que has creado el repositorio de espacio de nombres.
Ver si un recurso está listo
Para saber si los recursos sincronizados con el clúster están listos, consulta el estado de reconciliación. Por ejemplo, al consultar el estado de conciliación, puedes ver si una implementación sincronizada está lista para servir tráfico.
En el caso de una fuente de información veraz 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 registrar 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
Sustituye
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
Haz los cambios siguientes:
REPO_SYNC_NAME
: el nombre del objetoRepoSync
.NAMESPACE
: el espacio de nombres en el que has creado el repositorio de espacio de nombres.
En la salida, se muestran 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 cree, Config Sync crea un reconciliador Deployment para realizar la sincronización. En esta sección se explica cómo ver los registros de estos reconciliadores. Ver los registros puede ayudarte a depurar un problema, ya que te proporciona información adicional sobre el progreso, las advertencias y los errores, además de lo que está disponible en el estado de los objetos RootSync
y RepoSync
.
Para ver los registros del reconciliador
RootSync
oRepoSync
, ejecuta el siguiente comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
Haz los cambios siguientes:
RECONCILER_NAME
: el nombre del reconciliador del objetoRootSync
oRepoSync
.En el caso de
RootSync
, el nombre del reconciliador esroot-reconciler-ROOT_SYNC_NAME
oroot-reconciler
si el nombre deRootSync
esroot-sync
.En
RepoSync
, el nombre del reconciliador esns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ons-reconciler-NAMESPACE
si el nombre deRepoSync
esrepo-sync
, dondeNAMESPACE
es el espacio de nombres en el que has creado el 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 reconciliación.
Configurar el nivel de registro del reconciliador de RootSync o RepoSync
Para incluir más información en los registros de contenedores, configura el nivel de detalle de los registros. De forma predeterminada, la mayoría de los contenedores tienen el valor 0
en logVerbosity. Las excepciones son los contenedores git-sync
y otel-agent
, que tienen el valor predeterminado 5
.
Cuando cambies el nivel de verbosidad de los registros, ten en cuenta que, si lo aumentas, los costes de registro serán más altos porque se registrará un mayor volumen de datos.
Para cambiar el nivel de verbosidad de los registros, 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 del registro está configurada, ejecuta el siguiente comando:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
La verbosidad del registro se encuentra en uno de los args
de spec.template.spec.containers[]
y tiene el siguiente aspecto: -v=0
, donde 0 es la verbosidad del registro actual. En este ejemplo, si el valor de verbosidad del registro es 0, solo se registrarán los eventos críticos.