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 una fonte attendibile 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 sui potenziali errori.
Per visualizzare i log per la riconciliazione RootSync o RepoSync, esegui questo comando:
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 della riconciliazione èroot-reconciler-ROOT_SYNC_NAME
oroot-reconciler
se il nome di RootSync èroot-sync
.Per
RepoSync
, il nome del riconciliatore èns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ons-reconciler-NAMESPACE
se il nome di RepoSync èrepo-sync
, doveNAMESPACE
è lo spazio dei nomi in cui hai creato l'oggetto RepoSync.
CONTAINER_NAME
: il nome del contenitore.git-sync
: il containergit-sync
estrae le configurazioni dal repository Git in una directory locale che il container di riconciliazione può leggere.oci-sync
: il containeroci-sync
estrae le configurazioni dalla tua immagine OCI a una directory locale che il container di riconciliazione può leggere.helm-sync
: il containerhelm-sync
estrae le configurazioni dal grafico Helm in una directory locale che il container di riconciliazione può leggere.hydration-controller
: il containerhydration-controller
esegue il rendering di qualsiasi configurazione Helm o Kustomize estratta dal repository, quindi salva le configurazioni visualizzate nel volume condiviso per il containerreconciler
da elaborare ulteriormente.reconciler
: il containerreconciler
applica le configurazioni al cluster.otel-agent
: il containerotel-agent
è un agente OpenTelemetry per recuperare ed esportare metriche di Config Sync.
Visualizza commit sincronizzati
Per verificare quale commit è sincronizzato con il cluster, controlla il 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 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 di spazio dei nomi.
L'output per questi comandi mostra il valore del commit e del commit sincronizzato. Ad esempio, se hai eseguito il comando per RepoSync, dovresti vedere un output simile al seguente:
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
Il valore nella colonna RENDERINGCOMMIT
è il commit elaborato dal hydration-controller
. Se non è necessaria alcuna visualizzazione, il valore è lo stesso della colonna SOURCECOMMIT
. Il valore nella colonna SOURCECOMMIT
corrisponde al commit dalla sorgente di attendibilità che deve essere sincronizzato con il cluster. Il valore nella colonna SYNCCOMMIT
è il commit di cui è stato eseguito il deployment nel cluster. Se i due valori nelle colonne SOURCECOMMIT
e SYNCCOMMIT
sono uguali, il deployment del commit previsto è stato eseguito nel cluster.
Conferma che le risorse nel commit sono riconciliate
Per ogni oggetto RootSync o RepoSync, è presente un oggetto ResourceGroup univoco che acquisisce lo stato di riconciliazione delle risorse gestite dichiarate nella fonte di riferimento. 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, verifica quanto segue nell'output:
.status.observedGeneration
è uguale al valore del campo.metadata.generation
nell'oggetto ResourceGroup.- La condizione
Stalled
e la condizioneReconciling
hanno entrambestatus
come"False"
. - Ogni elemento nel campo
.status.resourceStatuses
ha lo statoCurrent
.
Visualizza errori
Gli oggetti RootSync e RepoSync utilizzano il campo status
per monitorare gli errori riscontrati durante la sincronizzazione delle configurazioni dall'origine di riferimento 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 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 di spazio dei nomi.
La seguente tabella illustra i campi secondari del campo status
:
Campo | Descrizione |
---|---|
status.rendering.errors | Gli errori riscontrati durante il processo di rendering delle configurazioni kustomize dalla fonte dei dati attendibili. Potrebbero non includere tutti gli errori riscontrati, dal momento che Config Sync tronca questi ultimi 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 fonte dei dati attendibili. |
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 fonte di riferimento. |
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 provenienti dalla fonte dei dati. Potrebbero non includere tutti gli errori riscontrati, poiché Config Sync tronca gli errori se ce ne sono troppi. |
status.source.errorSummary.totalCount | Un numero intero che monitora il numero totale di errori riscontrati durante la lettura e l'analisi delle configurazioni dalla fonte di riferimento. |
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 fonte di riferimento. |
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 fonte dei dati. Potrebbero non includere tutti gli errori riscontrati, dal momento che Config Sync tronca gli errori se ce ne sono troppi. |
status.sync.errorSummary.totalCount | Un numero intero che monitora il numero totale di errori riscontrati durante l'applicazione delle configurazioni dalla fonte dei 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 fonte dei 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 :
Syncing :
|
Visualizza dettagli oggetto
Per visualizzare i dettagli degli oggetti RootSync e RepoSync, utilizza kubectl describe
.
Questo comando può fornire ulteriori informazioni su potenziali errori.
Per visualizzare i dettagli dell'oggetto RootSync, esegui questo comando:
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 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 in cui hai creato il repository di spazio dei nomi.
Visualizza se una risorsa è pronta
Per sapere se le risorse sincronizzate con il cluster sono pronte, visualizza lo stato della riconciliazione. Ad esempio, la visualizzazione dello stato di riconciliazione può indicare se un deployment sincronizzato è pronto a gestire il traffico.
Per una fonte di attendibilità sincronizzata con il 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 gruppo di risorse 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 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 in cui hai creato il repository di 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