Cette page décrit les différentes manières de surveiller vos objets RootSync
et RepoSync
.
Par exemple, vous pouvez vérifier si votre dernier commit dans une source de vérité est appliqué à un cluster et fait l'objet d'un rapprochement.
Afficher les commits synchronisés
Vous pouvez vérifier quel commit est synchronisé avec le cluster en vérifiant le champ .status.sync
dans l'objet RootSync
ou RepoSync
.
Pour afficher les commits synchronisés pour un objet
RootSync
, exécutez la commande suivante :kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
Remplacez
ROOT_SYNC_NAME
par le nom de l'objetRootSync
.Pour afficher les commits synchronisés pour un objet
RepoSync
, exécutez la commande suivante :kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
Remplacez les éléments suivants :
REPO_SYNC_NAME
: nom de l'objetRepoSync
.REPO_SYNC_NAMESPACE
: espace de noms dans lequel vous avez créé votre dépôt d'espaces de noms.
La sortie de ces commandes indique la valeur du commit source et du commit synchronisé. Par exemple, si vous avez exécuté la commande pour RepoSync, vous obtenez une sortie semblable à la suivante :
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
La valeur de la colonne RENDERINGCOMMIT
correspond au commit traité par hydration-controller
. Si aucun rendu n'est nécessaire, la valeur est identique à celle de la colonne SOURCECOMMIT
. La valeur de la colonne SOURCECOMMIT
correspond au commit provenant de la source de vérité à synchroniser avec le cluster. La valeur de la colonne SYNCCOMMIT
correspond au commit déployé sur le cluster. Si les valeurs des colonnes SOURCECOMMIT
et SYNCCOMMIT
sont identiques, le commit attendu a bien été déployé sur le cluster.
Vérifier que les ressources du commit sont rapprochées
Étant donné que les objets ResourceGroup capturent l'état de rapprochement des ressources gérées déclarées dans la source de vérité, vous pouvez les examiner pour vérifier si les ressources du commit sont rapprochées.
L'objet ResourceGroup a le même espace de noms et le même nom que l'objet RootSync
ou RepoSync
. Par exemple, pour l'objet RootSync
portant le nom root-sync
dans l'espace de noms config-management-system
, l'objet ResourceGroup correspondant est également root-sync
dans l'espace de noms config-management-system
.
Pour obtenir l'objet ResourceGroup d'un objet
RootSync
, procédez comme suit:kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
Pour obtenir l'objet ResourceGroup d'un objet
RepoSync
, procédez comme suit :kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
Remplacez les éléments suivants :
ROOT_SYNC_NAME
: nom de l'objet ResourceGroup que vous souhaitez rechercher.REPO_SYNC_NAME
: nom de l'objet ResourceGroup que vous souhaitez rechercher.REPO_SYNC_NAMESPACE
: nom de l'objet ResourceGroup que vous souhaitez rechercher.
Pour vérifier que les ressources du commit sont rapprochées, recherchez les éléments suivants dans le résultat :
.status.observedGeneration
correspond à la valeur du champ.metadata.generation
dans l'objet ResourceGroup.- La condition
Stalled
a une valeurstatus
de"False"
. - Chaque élément sous
.status.resourceStatuses
a unactuation
deSucceeded
, unreconcile
deSucceeded
et unstatus
deCurrent
.
Afficher les erreurs
Les objets RootSync
et RepoSync
utilisent le champ status
pour suivre les erreurs rencontrées lors de la synchronisation des configurations de la source de vérité avec un cluster.
Pour afficher l'état d'un objet
RootSync
, exécutez la commande suivante :kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
Remplacez
ROOT_SYNC_NAME
par le nom de l'objetRootSync
.Pour afficher l'état d'un objet
RepoSync
, exécutez la commande suivante :kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
Remplacez les éléments suivants :
REPO_SYNC_NAME
: nom de l'objetRepoSync
.NAMESPACE
: espace de noms dans lequel vous avez créé votre dépôt d'espaces de noms.
Pour en savoir plus sur les sous-champs du champ status
, consultez la section État des objets.
Afficher les détails de l'objet
Pour afficher les détails des objets RootSync
et RepoSync
, et pour en savoir plus sur les erreurs potentielles, utilisez la commande kubectl describe
.
La sortie de cette commande inclut des événements, qui peuvent être particulièrement utiles pour déboguer des problèmes tels que des conteneurs confrontés à des contraintes de mémoire (OOMKilled), des échecs de planification ou des erreurs d'extraction d'images.
Pour un format plus lisible, convertissez la sortie au format YAML en ajoutant -o yaml
aux commandes suivantes. Ce format est particulièrement utile lorsque vous devez examiner des paramètres, des annotations ou des spécifications de ressources spécifiques.
Pour afficher les détails d'un objet
RootSync
, exécutez la commande suivante :kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
Remplacez
ROOT_SYNC_NAME
par le nom de l'objetRootSync
.Pour afficher les détails d'un objet
RepoSync
, exécutez la commande suivante :kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
Remplacez les éléments suivants :
REPO_SYNC_NAME
: nom de l'objetRepoSync
.NAMESPACE
: espace de noms dans lequel vous avez créé votre dépôt d'espaces de noms.
Voir si une ressource est prête
Pour savoir si les ressources synchronisées avec le cluster sont prêtes, affichez l'état de rapprochement. Par exemple, l'affichage de l'état de rapprochement peut vous indiquer si un déploiement synchronisé est prêt à diffuser du trafic.
Pour une source de vérité synchronisée avec le cluster, les états de rapprochement de toutes les ressources sont agrégés dans une ressource appelée ResourceGroup. Pour chaque objet RootSync
ou RepoSync
, un objet ResourceGroup est généré pour capturer l'ensemble de ressources appliquées au cluster et agréger leurs états.
Pour afficher l'état de rapprochement de l'objet
RootSync
, exécutez la commande suivante :kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
Remplacez
ROOT_SYNC_NAME
par le nom de l'objetRootSync
.Pour afficher l'état de rapprochement de l'objet
RepoSync
, exécutez la commande suivante :kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
Remplacez les éléments suivants :
REPO_SYNC_NAME
: nom de l'objetRepoSync
.NAMESPACE
: espace de noms dans lequel vous avez créé votre dépôt d'espaces de noms.
Dans le résultat, vous pouvez voir tous les états de la ressource ResourceGroup. Par exemple, le résultat suivant indique qu'un déploiement nommé nginx-deployment
est prêt :
resourceStatuses:
- group: apps
kind: Deployment
name: nginx-deployment
namespace: default
status: Current
Afficher les journaux
Pour chaque objet RootSync
et RepoSync
que vous créez, Config Sync crée un déploiement de rapprochement afin d'effectuer une synchronisation. Cette section explique comment afficher les journaux de ces réconciliateurs. L'affichage des journaux peut être utile lors du débogage d'un problème en fournissant des informations supplémentaires sur la progression, les avertissements et les erreurs en plus des informations disponibles dans les états d'objet RootSync
et RepoSync
.
Pour afficher les journaux de rapprochement
RootSync
ouRepoSync
, exécutez la commande suivante :kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
Remplacez les éléments suivants :
RECONCILER_NAME
: nom du rapprochement de l'objetRootSync
ouRepoSync
.Pour
RootSync
, le nom du rapprochement estroot-reconciler-ROOT_SYNC_NAME
ouroot-reconciler
si le nom deRootSync
estroot-sync
.Pour
RepoSync
, le nom du rapprochement estns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ouns-reconciler-NAMESPACE
si le nom deRepoSync
estrepo-sync
, oùNAMESPACE
est l'espace de noms dans lequel vous avez créé votre objetRepoSync
.
CONTAINER_NAME
: le nom du conteneur doit correspondre à l'une des valeurs suivantes :reconciler
,git-sync
,hydration-controller
,oci-sync
ouhelm-sync
. Pour en savoir plus sur ces conteneurs, consultez la section Réconcilier les conteneurs.
Configurer le niveau de journalisation du rapprochement RootSync ou RepoSync
Pour inclure plus d'informations dans les journaux du conteneur, configurez le niveau de détail des journaux. Par défaut, la valeur par défaut de la plupart des conteneurs est 0
pour la verbosity des journaux. Les conteneurs git-sync
et otel-agent
, dont la valeur par défaut est 5
, constituent des exceptions.
Lorsque vous modifiez la verbosité des journaux, gardez à l'esprit que cela augmente les coûts de journalisation, car un plus grand volume de données est enregistré.
Pour modifier la verbosité du journal, utilisez le champ .spec.override.logLevels
comme indiqué dans l'exemple suivant :
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
La valeur du champ containerName
doit être l'une des suivantes : reconciler
, git-sync
, hydration-controller
, oci-sync
ou helm-sync
.
Pour vérifier que la verbosité des journaux est configurée, exécutez la commande suivante :
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
La verbosité du journal peut être identifiée comme l'un des args
dans spec.template.spec.containers[]
et ressemble à -v=0
, où 0 est la verbosité actuelle du journal. Dans cet exemple, une valeur de verbosity de journalisation de 0 ne journalise que les événements critiques.