Surveiller les objets RootSync et RepoSync

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 d'informations est appliqué à un cluster et qu'il a été rapproché avec succès.

Afficher les journaux

Cette section explique comment afficher les journaux des objets RootSync et RepoSync. L'affichage des journaux fournit des informations sur les erreurs potentielles.

  • Pour afficher les journaux du rapprochement RootSync ou RepoSync, 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'objet RootSync ou RepoSync.

      • Pour RootSync, le nom du rapprochement est root-reconciler-ROOT_SYNC_NAME ou root-reconciler si le nom de la racine racine est root-sync.

      • Pour RepoSync, le nom du rapprochement est ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH ou ns-reconciler-NAMESPACE si le nom de RepoSync est repo-sync, où NAMESPACE est l'espace de noms dans lequel vous avez créé votre objet RepoSync.

    • CONTAINER_NAME: nom du conteneur.

      • git-sync: le conteneur git-sync extrait les configurations de votre dépôt Git vers un répertoire local que le conteneur de rapprochement peut lire.

      • oci-sync: le conteneur oci-sync extrait les configurations de votre image OCI vers un répertoire local que le conteneur de rapprochement peut lire.

      • helm-sync: le conteneur helm-sync extrait les configurations de votre graphique Helm vers un répertoire local que le conteneur de rapprochement peut lire.

      • hydration-controller: le conteneur hydration-controller affiche toutes les configurations Helm ou Kustomize extraites de votre dépôt, puis enregistre les configurations rendues dans le volume partagé pour le conteneur reconciler afin de poursuivre le traitement.

      • reconciler : le conteneur reconciler applique ces configurations au cluster.

      • otel-agent: le conteneur otel-agent est un agent OpenTelemetry permettant de récupérer et d'exporter des métriques Config Sync.

Afficher les commits synchronisés

Vous pouvez vérifier quel commit est synchronisé avec le cluster en consultant le champ .status.sync dans l'objet RootSync ou RepoSync.

  • Pour afficher les commits synchronisés d'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'objet RootSync.

  • Pour afficher les commits synchronisés d'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'objet RepoSync.
    • 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 de la source d'informations à 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

Chaque objet RootSync ou RepoSync possède un objet ResourceGroup unique qui capture l'état de rapprochement des ressources gérées déclarées dans la source fiable. L'objet ResourceGroup possède 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. Lorsque le dernier commit est appliqué, l'objet ResourceGroup contient le groupe, le genre, l'espace de noms et le nom des ressources gérées du dernier commit.

Vous pouvez exécuter la commande suivante pour obtenir un objet ResourceGroup:

  • Pour obtenir l'objet ResourceGroup pour un objet RootSync:

    kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
    
  • Pour obtenir l'objet ResourceGroup pour un objet RepoSync:

    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 ce qui suit dans la sortie:

  • .status.observedGeneration correspond à la valeur du champ .metadata.generation dans l'objet ResourceGroup.
  • Les conditions Stalled et Reconciling ont toutes les deux status pour "False".
  • Chaque élément du champ .status.resourceStatuses affiche l'état Current.

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 fiable 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'objet RootSync.

  • 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'objet RepoSync.
    • NAMESPACE: espace de noms dans lequel vous avez créé votre dépôt d'espaces de noms.

Le tableau suivant explique les sous-champs sous le champ status:

Champ Description
status.rendering.errors Les erreurs rencontrées lors du processus de rendu kustomize des configurations à partir de la source fiable. Il est possible que certaines erreurs ne soient pas incluses, car Config Sync tronque celles qui sont trop nombreuses.
status.rendering.errorSummary.totalCount Entier qui suit le nombre total d'erreurs rencontrées lors du rendu des configurations à partir de la source fiable.
status.rendering.errorSummary.truncated Valeur booléenne indiquant si le champ status.rendering.errors inclut toutes les erreurs rencontrées lors du processus d'affichage des configurations à partir de la source fiable.
status.rendering.errorSummary.errorCountAfterTruncation Entier qui suit le nombre d'erreurs dans le champ status.rendering.errors.
status.source.errors Erreurs rencontrées lors de la lecture et de l'analyse des configurations à partir de la source fiable. Il est possible que toutes les erreurs rencontrées ne soient pas incluses, car Config Sync tronque celles qui sont trop nombreuses.
status.source.errorSummary.totalCount Entier qui suit le nombre total d'erreurs rencontrées lors de la lecture et de l'analyse des configurations à partir de la source fiable.
status.source.errorSummary.truncated Valeur booléenne indiquant si le champ status.source.errors inclut toutes les erreurs rencontrées lors de la lecture et de l'analyse des configurations à partir de la source fiable.
status.source.errorSummary.errorCountAfterTruncation Entier qui suit le nombre d'erreurs dans le champ status.source.errors.
status.sync.errors Erreurs rencontrées lors de l'application des configurations à partir de la source fiable. Il est possible que toutes les erreurs rencontrées ne soient pas incluses, car Config Sync tronque les erreurs si elles sont trop nombreuses.
status.sync.errorSummary.totalCount Entier qui suit le nombre total d'erreurs rencontrées lors de l'application des configurations à partir de la source fiable.
status.sync.errorSummary.truncated Valeur booléenne indiquant si le champ status.sync.errors inclut toutes les erreurs rencontrées lors de l'application des configurations à partir de la source fiable.
status.sync.errorSummary.errorCountAfterTruncation Entier qui suit le nombre d'erreurs dans le champ status.sync.errors.
status.conditions Liste de conditions qui suivent l'état actuel d'un objet RootSync ou RepoSync.
Lorsque le champ type d'une condition est Reconciling ou Stalled:
  • Le champ errors de la condition suit les erreurs rencontrées lors du rapprochement de l'objet RootSync ou RepoSync.
  • Le champ errorSummary de la condition résume les erreurs du champ errors de la condition
  • Le champ errorsSourceRefs de la condition est vide
Lorsque le type de condition est Syncing:
  • Le champ errors de la condition est vide
  • Le champ errorsSourceRefs de la condition suit la ou les origines des erreurs. L'origine des erreurs peut être status.rendering.errors, status.source.errors ou status.sync.errors.
  • Le champ errorSummary de la condition récapitule les erreurs mentionnées dans le champ errorsSourceRefs.

Afficher les détails de l'objet

Pour afficher les détails des objets RootSync et RepoSync, utilisez la commande kubectl describe. Cette commande peut vous fournir des informations supplémentaires sur les erreurs potentielles.

  • Pour afficher les détails de l'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'objet RootSync.

  • Pour afficher les détails de l'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'objet RepoSync.
    • 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 d'informations synchronisées au 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'objet RootSync.

  • 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'objet RepoSync.
    • 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

Étapes suivantes