Questa pagina mostra diversi modi per 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.
Visualizzare 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-systemSostituisci
ROOT_SYNC_NAMEcon 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_NAMESPACESostituisci 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 il rendering, il valore è uguale a quello
della colonna SOURCECOMMIT. Il valore nella colonna SOURCECOMMIT è il commit
della 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 sono uguali, il
commit previsto è stato implementato nel cluster.
Conferma che le risorse nel commit siano riconciliate
Poiché ResourceGroups acquisisce lo stato di riconciliazione delle risorse gestite dichiarate nell'origine attendibile, puoi esaminarli per verificare se le risorse nel commit sono 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 è anche 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 yamlPer ottenere l'oggetto ResourceGroup per un oggetto
RepoSync:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yamlSostituisci 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 verificare che le risorse nel commit siano riconciliate, cerca quanto segue nell'output:
.status.observedGenerationè uguale al valore del campo.metadata.generationnell'oggetto ResourceGroup.- La condizione
Stalledha unstatusdi"False". - Ogni elemento in
.status.resourceStatusesha unactuationdiSucceeded, unreconcilediSucceedede unstatusdiCurrent.
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 yamlSostituisci
ROOT_SYNC_NAMEcon il nome dell'oggettoRootSync.Per visualizzare lo stato di un oggetto
RepoSync, esegui questo comando:kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yamlSostituisci 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 nel campo status, consulta
Stato degli oggetti.
Visualizza dettagli oggetto
Per visualizzare i dettagli degli oggetti RootSync e RepoSync e per 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 quali 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
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-systemSostituisci
ROOT_SYNC_NAMEcon il nome dell'oggettoRootSync.Per visualizzare i dettagli di un oggetto
RepoSync, esegui questo comando:kubectl describe reposync REPO_SYNC_NAME -n NAMESPACESostituisci quanto segue:
REPO_SYNC_NAME: il nome dell'oggettoRepoSync.NAMESPACE: lo spazio dei nomi in cui hai creato il repository dello spazio dei nomi.
Visualizzare 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 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 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 dell'oggetto
RootSync, esegui questo comando:kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yamlSostituisci
ROOT_SYNC_NAMEcon il nome dell'oggettoRootSync.Per visualizzare lo stato di riconciliazione dell'oggetto
RepoSync, esegui questo comando:kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yamlSostituisci 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. Ad 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 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 per il debug di un problema, in quanto fornisce ulteriori informazioni su progressi, avvisi ed errori oltre a quelle disponibili nello stato degli oggetti RootSync e RepoSync.
Per visualizzare i log del riconciliatore
RootSyncoRepoSync, esegui questo comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAMESostituisci quanto segue:
RECONCILER_NAME: il nome del riconciliatore dell'oggettoRootSyncoRepoSync.Per
RootSync, il nome del riconciliatore èroot-reconciler-ROOT_SYNC_NAMEoroot-reconcilerse il nome diRootSyncèroot-sync.Per
RepoSync, il nome del riconciliatore èns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTHons-reconciler-NAMESPACEse il nome diRepoSyncèrepo-sync, doveNAMESPACEè lo spazio dei nomi in cui hai creato l'oggettoRepoSync.
CONTAINER_NAME: il nome del contenitore deve essere uno dei seguenti valori:reconciler,git-sync,hydration-controller,oci-syncohelm-sync. Per saperne di più su questi contenitori, vedi Contenitori di riconciliazione.
Configurare il livello di log del riconciliatore RootSync o RepoSync
Per includere maggiori informazioni nei log dei container, configura il livello di dettaglio dei log. Per impostazione predefinita, la maggior parte dei container ha un valore predefinito di 0 per la verbosità dei log. Le eccezioni sono i contenitori 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 dei log comporta costi di logging più elevati perché viene registrato un volume maggiore di dati.
Per modificare il livello di dettaglio dei 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 verificare che la verbosità dei log sia configurata, esegui questo comando:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
La verbosità dei log è uno dei args all'interno di
spec.template.spec.containers[] e ha l'aspetto di -v=0, dove 0 è la verbosità
dei log attuale. In questo esempio, un valore di verbosità del log pari a 0 registra solo
gli eventi critici.