Questa pagina mostra diversi modi per monitorare gli 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 commit sincronizzati
Puoi verificare quale commit viene sincronizzato con il cluster controllando 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'oggettoRootSync
.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'oggettoRepoSync
.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 esegui il comando per RepoSync, vedrai 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 eseguire il rendering, il valore corrisponde a
quello della colonna SOURCECOMMIT
. Il valore nella colonna SOURCECOMMIT
è il commit
dalla fonte attendibile 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
corrispondono, è stato eseguito il deployment del commit previsto nel cluster.
Conferma che le risorse nel commit sono riconciliate
Poiché ResourceGroups acquisisce lo stato di riconciliazione delle risorse gestite dichiarate nella fonte di riferimento, puoi esaminarle per confermare se le risorse nell'impegno vengono riconciliate.
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
.
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 si vuole cercare.
Per confermare che le risorse nel commit sono state riconciliate, cerca quanto segue nell'output:
.status.observedGeneration
equivale al valore del campo.metadata.generation
nell'oggetto ResourceGroup.- La condizione
Stalled
eReconciling
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 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 dell'RootSync
oggetto.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'oggettoRepoSync
.NAMESPACE
: lo spazio dei nomi in cui hai creato il repository dello spazio dei nomi.
Per saperne di più sui sottocampi nel campo status
, consulta Stato degli oggetti.
Visualizza dettagli oggetto
Per visualizzare i dettagli degli oggetti RootSync
e RepoSync
e per scoprire ulteriori informazioni sui potenziali errori, utilizza il comando kubectl describe
.
L'output di questo comando include eventi, che possono essere particolarmente utili per il debug di problemi come i container con vincoli di memoria (OOMKilled), errori di pianificazione o errori di pull delle immagini.
Per un formato più leggibile, converti l'output in YAML aggiungendo -o yaml
ai comandi seguenti. Questo formato è particolarmente utile quando devi
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 dell'oggettoRootSync
.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'oggettoRepoSync
.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 di riconciliazione può indicare se un deployment sincronizzato è pronto per gestire il traffico.
Per un'origine attendibile 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 ResourceGroup per acquisire l'insieme di risorse applicate al cluster e aggregarne gli stati.
Per visualizzare lo stato di 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'oggettoRootSync
.Per visualizzare lo stato di 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'oggettoRepoSync
.NAMESPACE
: lo spazio dei nomi in cui hai creato il repository dello spazio dei nomi.
Nell'output, puoi vedere 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
Visualizza i log
Per ogni oggetto RootSync
e RepoSync
che crei, Config Sync crea un deployment di riconciliazione per eseguire la sincronizzazione. Questa sezione spiega come visualizzare i log
di questi riconciliatori. La visualizzazione dei log può essere utile durante il debug di un problema fornendo ulteriori informazioni su avanzamento, avvisi ed errori, oltre a quelle disponibili nello stato degli oggetti RootSync
e RepoSync
.
Per visualizzare i log per il riconciliazione
RootSync
oRepoSync
, esegui questo comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
Sostituisci quanto segue:
RECONCILER_NAME
: il nome del riconciliatore dell'oggettoRootSync
oRepoSync
.Per
RootSync
, il nome del riconciliatore èroot-reconciler-ROOT_SYNC_NAME
oroot-reconciler
se il nome diRootSync
èroot-sync
.Per
RepoSync
, il nome del riconciliatore èns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ons-reconciler-NAMESPACE
se il nome diRepoSync
èrepo-sync
, doveNAMESPACE
è lo spazio dei nomi in cui hai creato l'oggettoRepoSync
.
CONTAINER_NAME
: il nome del container deve essere uno dei seguenti valori:reconciler
,git-sync
,hydration-controller
,oci-sync
ohelm-sync
. Per scoprire di più su questi container, consulta Contenitori di riconciliazione.
Configura il livello di log del riconciliazione RootSync o RepoSync
Per includere ulteriori informazioni nei log dei container, configura le livello di dettaglio dei log. Per impostazione predefinita, la maggior parte dei container ha un valore predefinito di 0
per le livello di dettaglio dei log. Fanno eccezione i container git-sync
e otel-agent
che hanno un valore predefinito di 5
.
Quando modifichi il livello di dettaglio dei log, tieni presente che l'aumento del livello di dettaglio si traduce in costi di logging più elevati, in quanto viene registrato un maggiore volume di dati.
Per modificare le Preferenze di lettura del log, utilizza il campo .spec.override.logLevels
come mostrato 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 le Preferenze di lettura del log siano configurate, esegui questo comando:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
Le Preferenze di lettura del log, che è una delle args
all'interno di
spec.template.spec.containers[]
, sono simili a -v=0
, dove 0 è l'attuale
livello di dettaglio del log. In questo esempio, un valore di livello di dettaglio del log pari a 0 registrerà solo gli eventi critici.