Questa pagina mostra diversi modi in cui puoi monitorare gli
oggetti RootSync
e RepoSync
.
Ad esempio, potresti voler verificare se l'ultimo commit in una fonte attendibile è stato applicato a un cluster e se la riconciliazione è andata a buon fine.
Visualizza i 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 questo comando:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
Sostituisci
ROOT_SYNC_NAME
con il nome delRootSync
.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 hai eseguito 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 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 nella 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.
Verifica che le risorse nel commit siano riconciliate
Poiché ResourceGroup acquisisce lo stato di riconciliazione dichiarate nell'origine dati, puoi esaminarle per verificare delle risorse nel commit 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
,
l'oggetto ResourceGroup corrispondente è anch'esso root-sync
nello spazio dei nomi
config-management-system
.
Per ottenere l'oggetto ResourceGroup per un
RootSync
oggetto: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 da cercare.REPO_SYNC_NAME
: il nome dell'oggetto ResourceGroup da cercare.REPO_SYNC_NAMESPACE
: il nome dell'oggetto ResourceGroup da cercare.
Per verificare che le risorse nel commit siano riconciliate, cerca quanto segue nell'output:
.status.observedGeneration
equivale 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 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 dell'oggettoRootSync
.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 campi secondari sotto il campo status
, consulta
Stato degli oggetti.
Visualizza i dettagli dell'oggetto
Per visualizzare i dettagli degli oggetti RootSync
e RepoSync
e scoprire ulteriori informazioni su 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 che presentano 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
a
i seguenti comandi. 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 del OggettoRootSync
.Per visualizzare i dettagli di un oggetto
RepoSync
, esegui il seguente comando:kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
Sostituisci quanto segue:
REPO_SYNC_NAME
: il nome dell'oggettoRepoSync
.NAMESPACE
: lo spazio dei nomi che hai creato nello spazio dei nomi.
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 attendibile sincronizzata con il cluster, gli stati di riconciliazione di tutte le risorse vengono aggregati in una risorsa denominata ResourceGroup. Per ogni RootSync
o
RepoSync
, viene generato un ResourceGroup per acquisire l'insieme
di risorse applicate al cluster e aggregano i relativi 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 OggettoRootSync
.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'oggettoRepoSync
.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. 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 i 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
oRepoSync
, esegui quanto segue :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
oppurens-reconciler-NAMESPACE
se il nomeRepoSync
è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 saperne di più su questi contenitori, consulta Contenitori del riconciliatore.
Configurare il livello di log del riconciliatore RootSync o RepoSync
Per includere più informazioni nei log del contenitore, configura la verbosità del log. Per impostazione predefinita, la maggior parte dei contenitori ha un valore predefinito di 0
per la complessità dei log. Le eccezioni sono i contenitori git-sync
e otel-agent
, che hanno un valore predefinito di 5
.
Quando modifichi la modalità dettagliata dei log, tieni presente che l'aumento della modalità dettagliata comporta costi di registrazione più elevati a causa del maggiore volume di dati registrati.
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
La modalità di dettaglio dei log è disponibile come uno dei valori args
all'interno di spec.template.spec.containers[]
e ha il seguente aspetto: -v=0
, dove 0 è la modalità di dettaglio dei log corrente. In questo esempio, un valore di dettaglio del log pari a 0 registra solo gli eventi critici.