Monitoraggio di oggetti RootSync e RepoSync

Questa pagina mostra i diversi modi in cui puoi monitorare Oggetti RootSync e RepoSync. Ad esempio, potresti voler verificare se il tuo ultimo commit in una fonte attendibile. viene applicato a un cluster e riconciliato correttamente.

Visualizza i commit sincronizzati

Puoi controllare quale commit viene sincronizzato con il cluster controllando le Campo .status.sync nell'oggetto RootSync o RepoSync.

  • Per visualizzare i commit sincronizzati per un oggetto RootSync, esegui questo comando:

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
    

    Sostituisci ROOT_SYNC_NAME con il nome del RootSync.

  • Per visualizzare i commit sincronizzati per un oggetto RepoSync, esegui questo comando:

    kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE
    

    Sostituisci quanto segue:

    • REPO_SYNC_NAME: il nome dell'oggetto RepoSync.
    • REPO_SYNC_NAMESPACE: lo spazio dei nomi che hai creato nello spazio dei nomi di dominio.

L'output per questi comandi mostra il valore del commit del codice sorgente e commit sincronizzato. Ad esempio, se eseguissi il comando per RepoSync, vedere un output simile al seguente:

NAME        RENDERINGCOMMIT                            SOURCECOMMIT                               SYNCCOMMIT
root-sync   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72

Il valore nella colonna RENDERINGCOMMIT è il commit elaborato da hydration-controller. Se non è necessario alcun rendering, il valore è lo stesso di la colonna SOURCECOMMIT. Il valore nella colonna SOURCECOMMIT è il commit dalla fonte attendibile che deve essere sincronizzata con il cluster. Il valore nel campo La colonna SYNCCOMMIT è il commit di cui viene eseguito il deployment nel cluster. Se i due valori nelle colonne SOURCECOMMIT e SYNCCOMMIT sono uguali, nel cluster è stato eseguito il deployment del commit previsto.

Conferma che le risorse nel commit siano riconciliate

Poiché ResourceGroup acquisisce lo stato di riconciliazione dichiarate nella fonte dei dati, puoi esaminarle per verificare delle risorse nel commit vengono riconciliate.

L'oggetto ResourceGroup ha lo stesso spazio dei nomi e nome come oggetto RootSynco RepoSync. Ad esempio, per l'oggetto RootSync con il nome root-sync nello spazio dei nomi config-management-system, l'oggetto ResourceGroup corrispondente è anch'esso root-sync nello spazio dei nomi config-management-system.

  • Per ottenere l'oggetto ResourceGroup per un RootSyncoggetto:

    kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
    
  • Per ottenere l'oggetto ResourceGroup per un oggetto RepoSync:

    kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
    

    Sostituisci quanto segue:

    • ROOT_SYNC_NAME: il nome dell'oggetto ResourceGroup che vuoi cercare.
    • REPO_SYNC_NAME: il nome dell'oggetto ResourceGroup che vuoi cercare.
    • REPO_SYNC_NAMESPACE: il nome del ResourceGroup dell'oggetto che vuoi cercare.

Per confermare che le risorse nel commit siano riconciliate, cerca che segue nell'output:

  • .status.observedGeneration equivale al valore del campo .metadata.generation nell'oggetto ResourceGroup.
  • La condizione Stalled e la condizione Reconciling hanno entrambe status "False".
  • Ogni elemento nel campo .status.resourceStatuses ha lo stato Current.

Visualizza errori

Gli oggetti RootSync e RepoSync utilizzano il campo status per monitorare gli errori riscontrati durante la sincronizzazione delle configurazioni dalla fonte attendibile a un cluster.

  • Per visualizzare lo stato di un oggetto RootSync, esegui questo comando:

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
    

    Sostituisci ROOT_SYNC_NAME con il nome del RootSync.

  • Per visualizzare lo stato di un oggetto RepoSync, esegui questo comando:

    kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
    

    Sostituisci quanto segue:

    • REPO_SYNC_NAME: il nome dell'oggetto RepoSync.
    • NAMESPACE: lo spazio dei nomi che hai creato nello spazio dei nomi di dominio.

Per saperne di più sui campi secondari sotto il campo status, consulta Stato degli oggetti.

Visualizza dettagli oggetto

Per visualizzare i dettagli degli oggetti RootSync e RepoSync e per scoprire ulteriori informazioni informazioni sui potenziali errori, utilizza il comando kubectl describe.

L'output di questo comando include eventi, il che può essere particolarmente utile per il debug di problemi come i container con vincoli di memoria terminati, errori di pianificazione o errori di pull delle immagini.

Per un formato più leggibile, converti l'output in YAML aggiungendo -o yaml a i seguenti comandi. Questo formato è particolarmente utile quando esaminare parametri, annotazioni o specifiche delle risorse specifici.

  • Per visualizzare i dettagli di un oggetto RootSync, esegui questo comando:

    kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
    

    Sostituisci ROOT_SYNC_NAME con il nome del Oggetto RootSync.

  • Per visualizzare i dettagli di un oggetto RepoSync, esegui questo comando:

    kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
    

    Sostituisci quanto segue:

    • REPO_SYNC_NAME: il nome dell'oggetto RepoSync.
    • NAMESPACE: lo spazio dei nomi che hai creato nello spazio dei nomi di dominio.

Visualizzare se una risorsa è pronta

Per sapere se le risorse sincronizzate con il cluster sono pronte, visualizza la lo stato della riconciliazione. Ad esempio, lo stato della riconciliazione può mostrare se un deployment sincronizzato è pronto a gestire il traffico.

Per una fonte di dati sincronizzata con il cluster, gli stati della riconciliazione di tutti sono aggregate in una risorsa denominata ResourceGroup. Per ogni RootSync o RepoSync, viene generato un ResourceGroup per acquisire l'insieme di risorse applicate al cluster e ne aggregano gli stati.

  • Per visualizzare lo stato della riconciliazione per l'oggetto RootSync, esegui questo comando: :

    kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
    

    Sostituisci ROOT_SYNC_NAME con il nome del Oggetto RootSync.

  • Per visualizzare lo stato della riconciliazione per l'oggetto RepoSync, esegui questo comando: :

    kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
    

    Sostituisci quanto segue:

    • REPO_SYNC_NAME: il nome dell'oggetto RepoSync.
    • NAMESPACE: lo spazio dei nomi che hai creato nello spazio dei nomi di dominio.

Nell'output sono visualizzati tutti gli stati delle risorse ResourceGroup. Per esempio, l'output seguente mostra che un deployment denominato nginx-deployment è pronto:

resourceStatuses:
- group: apps
  kind: Deployment
  name: nginx-deployment
  namespace: default
  status: Current

Visualizza i log

Per ogni oggetto RootSync e RepoSync che crei, Config Sync crea deployment di riconciliazione di eseguire la sincronizzazione. Questa sezione spiega come visualizzare log di questi riconciliatori. La visualizzazione dei log può essere utile durante il debug di un problema fornendo ulteriori informazioni su progressi, avvisi ed errori oltre disponibile negli stati degli oggetti RootSync e RepoSync.

  • Per visualizzare i log per il riconciliatore RootSync o RepoSync, esegui quanto segue :

    kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
    

    Sostituisci quanto segue:

    • RECONCILER_NAME: il nome del riconciliatore del Oggetto RootSync o RepoSync.

      • Per RootSync, il nome del riconciliatore è root-reconciler-ROOT_SYNC_NAME o root-reconciler se il nome di RootSync è root-sync.

      • Per RepoSync, il nome del riconciliatore è ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH oppure ns-reconciler-NAMESPACE se il nome RepoSync è repo-sync, dove NAMESPACE è lo spazio dei nomi in cui hai creato l'oggetto RepoSync.

    • CONTAINER_NAME: il nome del container deve essere uno dei seguenti valori: reconciler, git-sync, hydration-controller, oci-sync o helm-sync. Per scoprire di più su questi container, Container di riconciliazione.

Configurare il livello di log del riconciliatore RootSync o RepoSync

Per includere maggiori informazioni nei log dei container, configura il log livello di dettaglio. Per impostazione predefinita, la maggior parte dei container ha un valore predefinito di 0 per il log livello di dettaglio. Fanno eccezione le git-sync e le otel-agent di container con un valore predefinito di 5.

Quando modifichi il livello di dettaglio dei log, tieni presente che l'aumento del livello di dettaglio dei log in costi di logging più elevati, perché viene registrato un volume maggiore di dati.

Per modificare il livello di dettaglio del log, utilizza il campo .spec.override.logLevels come mostrato in nell'esempio seguente:

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

Il valore nel campo containerName deve essere uno dei seguenti: reconciler, git-sync, hydration-controller, oci-sync o helm-sync.

Per confermare che il livello di dettaglio dei log è configurato, esegui questo comando:

kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml

Il livello di dettaglio log è uno dei args all'interno spec.template.spec.containers[] e appare come -v=0, dove 0 è il valore attuale logaritmo. In questo esempio, un valore di dettaglio log pari a 0 registra solo per eventi critici.