Afficher l'état de Config Sync avec gcloud CLI

Cette page explique comment utiliser les commandes Google Cloud CLI pour surveiller Config Sync :

  • Utilisez gcloud alpha anthos config sync repo pour afficher l'état de vos dépôts sur plusieurs clusters.

  • Utilisez gcloud alpha anthos config sync resources pour afficher les ressources gérées par Config Sync.

Vous pouvez également afficher des informations similaires dans le tableau de bord Config Sync.

Avant de commencer

Avant d'utiliser les commandes de cette page, procédez comme suit :

  1. Mettez à jour les composants de Google Cloud CLI :

    gcloud components update
    
  2. Enregistrez vos clusters si ce n'est pas déjà fait. Si vous avez installé et configuré Config Sync via la console Google Cloud, vous pouvez ignorer cette étape.

  3. Si votre cluster n'est pas un cluster GKE, les administrateurs de plate-forme doivent configurer une passerelle Connect pour le cluster enregistré.

  4. Définissez votre projet :

    gcloud config set project PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet dans lequel Config Sync est configuré et exécuté.

Afficher l'état de Config Sync sur plusieurs clusters

Si vous installez et configurez Config Sync sur plusieurs clusters enregistrés dans un projet, vous pouvez utiliser gcloud alpha anthos config sync repo pour répertorier l'état du dépôt synchronisé sur les clusters et résoudre les problèmes liés à Config Sync.

Contrairement à nomos status, gcloud alpha anthos config sync repo regroupe l'état par dépôt, tandis que la commande nomos status regroupe l'état par cluster.

Répertorier tous les dépôts

Pour répertorier tous les états des dépôts Git synchronisés avec tous les clusters enregistrés dans le projet actuel, exécutez la commande suivante :

gcloud alpha anthos config sync repo list

Le résultat ressemble à ce qui suit :

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
                       SOURCE                                     TOTAL  SYNCED  PENDING  ERROR  STALLED  RECONCILING 
├─────────────────────────────────────────────────────────────────┼───────┼────────┼─────────┼───────┼─────────┼─────────────┤
 https://source.developers.google.com/p/test/r/test//@main        2      2       0        0      0        0           
 https://source.developers.google.com/p/test/r/dev//@main         2      1       0        0      1        0           
 https://source.developers.google.com/p/test/r/staging//@main     1      0       0        1      0        0           
└─────────────────────────────────────────────────────────────────┴───────┴────────┴─────────┴───────┴─────────┴─────────────┘

Pour chaque dépôt, vous pouvez voir l'état correspondant dans tous les clusters :

  • TOTAL est le nombre de clusters avec lesquels le dépôt est synchronisé.
  • SYNCED est le nombre de clusters dans lesquels ce dépôt est synchronisé.
  • PENDING correspond au nombre de clusters dans lesquels ce dépôt est en attente de synchronisation.
  • ERROR correspond au nombre de clusters dans lesquels ce dépôt rencontre une erreur lors de la synchronisation.
  • STALLED est le nombre de clusters dans lesquels le déploiement qui synchronise ce dépôt est bloqué.
  • RECONCILING correspond au nombre de clusters dans lesquels le déploiement qui synchronise ce dépôt fait l'objet d'un rapprochement.

Répertorier les dépôts avec un état spécifique

Vous pouvez également répertorier les dépôts avec un état spécifique à l'aide de l'option --status. Les valeurs acceptées sont synced, pending, error, stalled et reconciling.

Par exemple, répertoriez les dépôts contenant des erreurs en exécutant la commande suivante :

gcloud alpha anthos config sync repo list --status=error

Le résultat ressemble à ce qui suit :

┌─────────────────────────────────────────────────────────────────┬───────┬────────┬─────────┬───────┬─────────┬─────────────┐
                       SOURCE                                     TOTAL  SYNCED  PENDING  ERROR  STALLED  RECONCILING 
├─────────────────────────────────────────────────────────────────┼───────┼────────┼─────────┼───────┼─────────┼─────────────┤
 https://source.developers.google.com/p/test/r/staging//@main     1      0       0        1      0        0           
└─────────────────────────────────────────────────────────────────┴───────┴────────┴─────────┴───────┴─────────┴─────────────┘

Décrire un dépôt

Exécutez la commande "describe" pour afficher des informations sur l'état de votre dépôt :

   gcloud alpha anthos config sync repo describe \
     --source URL

Remplacez URL par une URL provenant du résultat de la commande repo list décrite dans la section précédente.

Vous pouvez également utiliser --namespace et --name pour spécifier le dépôt que vous souhaitez décrire.

   gcloud alpha anthos config sync repo describe \
     --sync-namespace config-management-system --sync-name root-sync

Par défaut, la commande affiche l'état du dépôt, ainsi que toutes les ressources gérées qui sont appliquées mais dont le rapprochement a échoué. Exemple :

   [
     {
       "clusters": [
         "cluster-1",
         "cluster-2",
       ],
       "commit": "32293c90a63efba3121c7648048fcd3e85043a34",
       "errors": [],
       "source": "https://source.developers.google.com/p/test/r/test//@main",
       "status": "SYNCED"
     }
   ]

Vous pouvez également utiliser l'option --managed-resources pour contrôler les ressources gérées à afficher. Les valeurs acceptées sont all, current, inprogress, notfound, failed (valeur par défaut) ou unknown. Vous pouvez exécuter la commande suivante pour afficher toutes les ressources gérées :

   gcloud alpha anthos config sync repo describe \
     --namespace config-management-system --name root-sync \
     --managed-resources all

Le résultat ressemble à ce qui suit :

   [
     {
       "clusters": [
         "cluster-1",
         "cluster-2",
       ],
       "commit": "32293c90a63efba3121c7648048fcd3e85043a34",
       "errors": [],
       "source": "https://source.developers.google.com/p/test/r/test//@main",
       "status": "SYNCED"
     }
   ]
   ┌────────────────────────────────────────────────────────────────┐
                          managed_resources                        
   ├───────┬───────────┬─────────┬───────────┬─────────┬────────────┤
    GROUP     KIND      NAME   NAMESPACE   STATUS  CONDITIONS 
   ├───────┼───────────┼─────────┼───────────┼─────────┼────────────┤
           Namespace  default             Current             
           ConfigMap  foo      default    Current             
   └───────┴───────────┴─────────┴───────────┴─────────┴────────────┘

Afficher les ressources gérées par Config Sync

Vous pouvez utiliser gcloud alpha anthos config sync resources pour filtrer les ressources gérées par cluster, groupe, type, espace de noms, nom, état ou une combinaison de ces attributs.

Répertorier toutes les ressources gérées

   gcloud alpha anthos config sync resources list

Cette commande répertorie toutes les ressources gérées qui sont synchronisées avec tous les clusters enregistrés dans le projet actuel. Le résultat ressemble à ce qui suit :

┌───────────────────┬───────────────────────────┬──────────────────────────┬──────────────────┬───────────────────────────────────────────┬─────────┬───────────┐
│    CLUSTER_NAME   │           GROUP           │           KIND           │    NAMESPACE     │                    NAME                   │  STATUS │ CONDITION │
├───────────────────┼───────────────────────────┼──────────────────────────┼──────────────────┼───────────────────────────────────────────┼─────────┼───────────┤
│ cluster-1         │                           │ Namespace                │                  │ default                                   │ Current │           │
│ cluster-1         │ rbac.authorization.k8s.io │ RoleBinding              │ default          │ viewers                                   │ Current │           │
│ cluster-2         │                           │ Namespace                │                  │ gamestore                                 │ Current │           │
│ cluster-2         │ rbac.authorization.k8s.io │ RoleBinding              │ gamestore        │ gamestore-admin                           │ Current │           │
│ cluster-2         │ rbac.authorization.k8s.io │ RoleBinding              │ gamestore        │ gamestore-webstore-admin                  │ Current │           │
└───────────────────┴───────────────────────────┴──────────────────────────┴──────────────────┴───────────────────────────────────────────┴─────────┴───────────┘

Chaque ligne du résultat décrit la ressource gérée et son état correspondant :

  • CLUSTER_NAME est le nom du cluster dont provient la ressource gérée.
  • GROUP est l'attribut de groupe de la ressource gérée.
  • KIND est l'attribut de genre de la ressource gérée.
  • NAMESPACE est l'espace de noms de la ressource gérée.
  • NAME est le nom de la ressource gérée.
  • STATUS est l'état de rapprochement de la ressource gérée. Vous trouverez la liste des états possibles dans la documentation sur le SIG Kubernetes.
  • CONDITION est le message expliquant l'état de la ressource gérée.

Répertorier les ressources gérées à partir d'un seul cluster

Vous pouvez afficher les ressources gérées par cluster en utilisant une commande gcloud ou en les affichant dans la console Google Cloud.

Vous pouvez répertorier les ressources gérées à partir d'un cluster spécifique à l'aide de l'option --cluster. Par exemple, répertoriez les ressources gérées à partir du cluster nommé cluster-1 à l'aide de la commande suivante :

gcloud alpha anthos config sync resources list --cluster=cluster-1

Le résultat ressemble à ce qui suit :

┌───────────────────┬───────────────────────────┬──────────────────────────┬──────────────────┬───────────────────────────────────────────┬─────────┬───────────┐
│    CLUSTER_NAME   │           GROUP           │           KIND           │    NAMESPACE     │                    NAME                   │  STATUS │ CONDITION │
├───────────────────┼───────────────────────────┼──────────────────────────┼──────────────────┼───────────────────────────────────────────┼─────────┼───────────┤
│ cluster-1         │                           │ Namespace                │                  │ default                                   │ Current │           │
│ cluster-1         │ rbac.authorization.k8s.io │ RoleBinding              │ default          │ viewers                                   │ Current │           │
└───────────────────┴───────────────────────────┴──────────────────────────┴──────────────────┴───────────────────────────────────────────┴─────────┴───────────┘

Étapes suivantes