Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Monitoraggio di oggetti RootSync e RepoSync

Questa pagina mostra i diversi modi in cui puoi monitorare gli oggetti RootSync e RepoSync. Ad esempio, potresti voler verificare se l'ultimo commit in un repository Git viene applicato a un cluster e riconciliato correttamente.

Visualizza i log

Questa sezione spiega come visualizzare i log per gli oggetti RootSync e RepoSync. La visualizzazione dei log fornisce informazioni su potenziali errori.

  • Per visualizzare i log per il riconciliatore RootSync o RepoSync, esegui il comando seguente:

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

    Sostituisci quanto segue:

    • RECONCILER_NAME: il nome della riconciliazione dell'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 o ns-reconciler-NAMESPACE se il nome del RepoSync è repo-sync, dove NAMESPACE è lo spazio dei nomi in cui hai creato l'oggetto RepoSync.

    • CONTAINER_NAME: il nome del contenitore.

      • git-sync: il container git-sync estrae le configurazioni dal tuo repository Git a una directory locale che il container della riconciliazione può leggere.

      • oci-sync: il container oci-sync estrae le configurazioni dall'immagine OCI a una directory locale che il container della riconciliazione può leggere.

      • helm-sync: il container helm-sync estrae le configurazioni dal grafico Helm in una directory locale che il container della riconciliazione può leggere.

      • hydration-controller: il container hydration-controller esegue il rendering di qualsiasi configurazione Helm o Kustomize estratta dal tuo repository, quindi salva le configurazioni visualizzate nel volume condiviso per il container reconciler da elaborare ulteriormente.

      • reconciler: il container reconciler applica le configurazioni al cluster.

      • otel-agent: il container otel-agent è un agente OpenTelemetry per recuperare ed esportare le metriche di Config Sync.

Visualizza commit sincronizzati

Puoi controllare quale commit è sincronizzato con il cluster controllando il campo .status.sync nell'oggetto RootSync o RepoSync.

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

    kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
    

    Sostituisci ROOT_SYNC_NAME con il nome dell'oggetto RootSync.

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

    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 in cui hai creato il repository dello spazio dei nomi.

L'output di questi comandi mostra il valore del commit di origine e del commit sincronizzato. Ad esempio, se hai eseguito il comando per il RepoSync, dovresti visualizzare un output simile al seguente:

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

Il valore nella colonna RENDERINGCOMMIT è il commit elaborato dall'hydration-controller. Se non è necessario eseguire il rendering, il valore corrisponde a quello della colonna SOURCECOMMIT. Il valore nella colonna SOURCECOMMIT è il commit dal repository Git che deve essere sincronizzato con il cluster. Il valore nella colonna SYNCCOMMIT è il commit di cui viene eseguito il deployment nel cluster. Se i due valori nelle colonne SOURCECOMMIT e SYNCCOMMIT sono uguali, è stato eseguito il deployment del commit previsto nel cluster.

Conferma che le risorse nel commit sono riconciliate

Per ogni oggetto RootSync o RepoSync, esiste un oggetto ResourceGroup univoco che acquisisce lo stato di riconciliazione delle risorse gestite dichiarate nel repository Git. L'oggetto ResourceGroup ha lo stesso spazio dei nomi e lo stesso nome dell'oggetto RootSync o RepoSync. Ad esempio, per l'oggetto RootSync con il nome root-sync nello spazio dei nomi config-management-system, anche l'oggetto ResourceGroup corrispondente è root-sync nello spazio dei nomi config-management-system. Quando l'ultimo commit viene applicato correttamente, l'oggetto ResourceGroup contiene il gruppo, il tipo, lo spazio dei nomi e il nome delle risorse gestite dall'ultimo commit.

Puoi eseguire questo comando per ottenere un oggetto ResourceGroup:

  • Per ottenere l'oggetto ResourceGroup per un oggetto RootSync:

    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 dell'oggetto ResourceGroup che vuoi cercare.

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

  • .status.observedGeneration è uguale al valore del campo .metadata.generation nell'oggetto ResourceGroup.
  • La condizione Stalled e la condizione Reconciling hanno entrambe status come "False".
  • Lo stato di ogni elemento nel campo .status.resourceStatuses è Current.

Visualizza errori

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

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

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

    Sostituisci ROOT_SYNC_NAME con il nome dell'oggetto RootSync.

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

    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 in cui hai creato il repository dello spazio dei nomi.

La tabella seguente illustra i sottocampi del campo status:

Campo Descrizione
status.rendering.errors Gli errori riscontrati durante il processo di rendering delle configurazioni kustomize dalla fonte di riferimento. Potrebbero non includere tutti gli errori riscontrati, poiché Config Sync tronca gli errori se sono presenti troppi errori.
status.rendering.errorSummary.totalCount Un numero intero che monitora il numero totale di errori riscontrati durante il processo di rendering delle configurazioni dalla sorgente di dati.
status.rendering.errorSummary.truncated Un valore booleano che indica se il campo status.rendering.errors include tutti gli errori riscontrati durante il processo di rendering delle configurazioni dalla sorgente di dati.
status.rendering.errorSummary.errorCountAfterTruncation Un numero intero che monitora il numero di errori nel campo status.rendering.errors.
status.source.errors Gli errori riscontrati durante la lettura e l'analisi delle configurazioni dalla sorgente di dati. Potrebbero non includere tutti gli errori riscontrati, poiché Config Sync tronca gli errori se sono presenti troppi errori.
status.source.errorSummary.totalCount Un numero intero che monitora il numero totale di errori riscontrati durante la lettura e l'analisi delle configurazioni dalla sorgente di dati.
status.source.errorSummary.truncated Un valore booleano che indica se il campo status.source.errors include tutti gli errori riscontrati durante la lettura e l'analisi delle configurazioni dalla sorgente di dati.
status.source.errorSummary.errorCountAfterTruncation Un numero intero che monitora il numero di errori nel campo status.source.errors.
status.sync.errors Gli errori riscontrati durante l'applicazione delle configurazioni dalla sorgente di dati. Potrebbero non includere tutti gli errori riscontrati, poiché Config Sync tronca gli errori se sono presenti troppi errori.
status.sync.errorSummary.totalCount Un numero intero che monitora il numero totale di errori riscontrati durante l'applicazione delle configurazioni dalla sorgente di dati.
status.sync.errorSummary.truncated Un valore booleano che indica se il campo status.sync.errors include tutti gli errori riscontrati durante l'applicazione delle configurazioni dalla sorgente di dati.
status.sync.errorSummary.errorCountAfterTruncation Un numero intero che monitora il numero di errori nel campo status.sync.errors.
status.conditions Un elenco di condizioni che monitorano lo stato attuale di un oggetto RootSync o RepoSync.
Quando il campo type di una condizione è Reconciling o Stalled:
  • Il campo errors della condizione monitora gli errori riscontrati durante la riconciliazione dell'oggetto RootSync o RepoSync
  • Il campo errorSummary della condizione riassume gli errori nel campo errors della condizione
  • Il campo errorsSourceRefs della condizione è vuoto
Quando il tipo di condizione è Syncing:
  • Il campo errors della condizione è vuoto
  • Il campo errorsSourceRefs della condizione monitora le origini degli errori. L'origine degli errori può essere status.rendering.errors, status.source.errors o status.sync.errors.
  • Il campo errorSummary della condizione riassume gli errori a cui si fa riferimento nel campo errorsSourceRefs.

Visualizza dettagli oggetto

Per visualizzare i dettagli degli oggetti RootSync e RepoSync, utilizza kubectl describe. Questo comando può fornirti ulteriori informazioni su potenziali errori.

  • Per visualizzare i dettagli dell'oggetto RootSync, esegui il comando seguente:

    kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
    

    Sostituisci ROOT_SYNC_NAME con il nome dell'oggetto RootSync.

  • Per visualizzare i dettagli dell'oggetto RepoSync, esegui il comando seguente:

    kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
    

    Sostituisci quanto segue:

    • REPO_SYNC_NAME: il nome dell'oggetto RepoSync.
    • NAMESPACE: lo spazio dei nomi in cui hai creato il repository dello spazio dei nomi.

Visualizza se una risorsa è pronta

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

Per un repository Git sincronizzato nel cluster, gli stati di riconciliazione di tutte le risorse vengono aggregati in una risorsa denominata ResourceGroup. Per ogni oggetto RootSync o RepoSync, viene generato un ResourceGroup per acquisire l'insieme di risorse applicate al cluster e aggregarne 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 dell'oggetto RootSync.

  • Per visualizzare lo stato della riconciliazione dell'oggetto RepoSync, esegui il comando seguente:

    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 in cui hai creato il repository dello spazio dei nomi.

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

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

Passaggi successivi