Esta página mostra-lhe diferentes formas de monitorizar os objetos RootSync e RepoSync.
Por exemplo, pode querer validar se a confirmação mais recente numa fonte de verdade
é aplicada a um cluster e reconciliada com êxito.
Veja os commits sincronizados
Pode verificar qual a confirmação sincronizada com o cluster verificando o campo .status.sync no objeto RootSync ou RepoSync.
- Para ver as confirmações sincronizadas de um - RootSyncobjeto, execute o seguinte comando:- kubectl get rootsync ROOT_SYNC_NAME -n config-management-system- Substitua - ROOT_SYNC_NAMEpelo nome do objeto- RootSync.
- Para ver as confirmações sincronizadas de um objeto - RepoSync, execute o seguinte comando:- kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE- Substitua o seguinte: - REPO_SYNC_NAME: o nome do objeto- RepoSync.
- REPO_SYNC_NAMESPACE: o espaço de nomes no qual criou o repositório do espaço de nomes.
 
O resultado destes comandos mostra o valor da confirmação de origem e da confirmação sincronizada. Por exemplo, se executou o comando para o RepoSync, vê um resultado semelhante ao seguinte:
NAME        RENDERINGCOMMIT                            SOURCECOMMIT                               SYNCCOMMIT
root-sync   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72   66882815f0ef5517df27e864fb1315e97756ab72
O valor na coluna RENDERINGCOMMIT é a confirmação processada pelo hydration-controller. Se não for necessária renderização, o valor é igual ao da coluna SOURCECOMMIT. O valor na coluna SOURCECOMMIT é a confirmação da fonte de dados fidedignos que deve ser sincronizada com o cluster. O valor na coluna SYNCCOMMIT é a confirmação implementada no cluster. Se os dois valores nas colunas SOURCECOMMIT e SYNCCOMMIT forem iguais, a confirmação esperada foi implementada no cluster.
Confirme se os recursos na confirmação estão reconciliados
Uma vez que os ResourceGroups captam o estado de conciliação dos recursos geridos declarados na fonte de dados fidedignos, pode examiná-los para confirmar se os recursos na confirmação estão reconciliados.
O objeto ResourceGroup tem o mesmo espaço de nomes e nome que o objeto RootSync ou RepoSync. Por exemplo, para o objeto RootSync com o nome root-sync no espaço de nomes config-management-system, o objeto ResourceGroup correspondente também é root-sync no espaço de nomes config-management-system.
- Para obter o objeto ResourceGroup de um - RootSyncobjeto:- kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
- Para obter o objeto ResourceGroup de um objeto - RepoSync:- kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml- Substitua o seguinte: - ROOT_SYNC_NAME: o nome do objeto ResourceGroup que quer procurar.
- REPO_SYNC_NAME: o nome do objeto ResourceGroup que quer procurar.
- REPO_SYNC_NAMESPACE: o nome do objeto ResourceGroup que quer procurar.
 
Para confirmar que os recursos na confirmação estão reconciliados, procure o seguinte na saída:
- O valor .status.observedGenerationé igual ao valor do campo.metadata.generationno objeto ResourceGroup.
- A condição Stalledtem um valor destatusde"False".
- Cada item em .status.resourceStatusestem umactuationdeSucceeded, umreconciledeSucceedede umstatusdeCurrent.
Ver erros
Os objetos RootSynce RepoSync usam o campo status para acompanhar os erros encontrados
ao sincronizar as configurações da fonte de verdade com um cluster.
- Para ver o estado de um - RootSyncobjeto, execute o seguinte comando:- kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml- Substitua - ROOT_SYNC_NAMEpelo nome do objeto- RootSync.
- Para ver o estado de um objeto - RepoSync, execute o seguinte comando:- kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml- Substitua o seguinte: - REPO_SYNC_NAME: o nome do objeto- RepoSync.
- NAMESPACE: o espaço de nomes no qual criou o repositório do espaço de nomes.
 
Para saber mais acerca dos subcampos no campo status, consulte o artigo
Estado dos objetos.
Veja os detalhes do objeto
Para ver detalhes dos objetos RootSync e RepoSync e descobrir mais informações sobre potenciais erros, use o comando kubectl describe.
O resultado deste comando inclui eventos, que podem ser particularmente úteis para depurar problemas como contentores com restrições de memória (OOMKilled), falhas de agendamento ou erros de obtenção de imagens.
Para um formato mais legível, converta o resultado em YAML anexando -o yaml aos seguintes comandos. Este formato é especialmente útil quando precisa de examinar parâmetros, anotações ou especificações de recursos específicos.
- Para ver os detalhes de um objeto - RootSync, execute o seguinte comando:- kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system- Substitua - ROOT_SYNC_NAMEpelo nome do objeto- RootSync.
- Para ver os detalhes de um objeto - RepoSync, execute o seguinte comando:- kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE- Substitua o seguinte: - REPO_SYNC_NAME: o nome do objeto- RepoSync.
- NAMESPACE: o espaço de nomes no qual criou o repositório do espaço de nomes.
 
Veja se um recurso está pronto
Para saber se os recursos sincronizados com o cluster estão prontos, veja o estado de reconciliação. Por exemplo, a visualização do estado de conciliação pode mostrar se uma implementação sincronizada está pronta para publicar tráfego.
Para uma fonte de informação sincronizada com o cluster, os estados de conciliação de todos os recursos são agregados num recurso denominado ResourceGroup. Para cada objeto RootSync ou RepoSync, é gerado um ResourceGroup para captar o conjunto de recursos aplicados ao cluster e agregar os respetivos estados.
- Para ver o estado de conciliação do objeto - RootSync, execute o seguinte comando:- kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml- Substitua - ROOT_SYNC_NAMEpelo nome do objeto- RootSync.
- Para ver o estado de conciliação do objeto - RepoSync, execute o seguinte comando:- kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml- Substitua o seguinte: - REPO_SYNC_NAME: o nome do objeto- RepoSync.
- NAMESPACE: o espaço de nomes no qual criou o repositório do espaço de nomes.
 
Na saída, vê todos os estados dos recursos ResourceGroup. Por exemplo, a seguinte saída mostra que uma implementação denominada nginx-deployment está pronta:
resourceStatuses:
- group: apps
  kind: Deployment
  name: nginx-deployment
  namespace: default
  status: Current
Ver registos
Para cada objeto RootSync e RepoSync que criar, o Config Sync cria uma implementação do reconciliador para fazer a sincronização. Esta secção explica como ver os registos destes reconciliadores. A visualização dos registos pode ajudar na depuração de um problema, fornecendo informações adicionais sobre o progresso, os avisos e os erros, além do que está disponível no estado do objeto RootSync e RepoSync.
- Para ver os registos do reconciliador - RootSyncou- RepoSync, execute o seguinte comando:- kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME- Substitua o seguinte: - RECONCILER_NAME: o nome do reconciliador do objeto- RootSyncou- RepoSync.- Para - RootSync, o nome do reconciliador é- root-reconciler-ROOT_SYNC_NAMEou- root-reconcilerse o nome de- RootSyncfor- root-sync.
- Para - RepoSync, o nome do reconciliador é- ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTHou- ns-reconciler-NAMESPACEse o nome de- RepoSyncfor- repo-sync, em que- NAMESPACEé o espaço de nomes no qual criou o objeto- RepoSync.
 
- CONTAINER_NAME: o nome do contentor tem de ser um dos seguintes valores:- reconciler,- git-sync,- hydration-controller,- oci-syncou- helm-sync. Para saber mais acerca destes contentores, consulte o artigo Contentores do reconciliador.
 
Configure o nível de registo do reconciliador RootSync ou RepoSync
Para incluir mais informações nos registos do contentor, configure a verbosidade dos registos. Por predefinição, a maioria dos contentores tem um valor predefinido de 0 para log
verbosity. As exceções são os contentores git-sync e otel-agent
que têm um valor predefinido de 5.
Quando alterar a verbosidade do registo, tenha em atenção que o aumento da verbosidade do registo resulta em custos de registo mais elevados, uma vez que é registado um maior volume de dados.
Para alterar a verbosidade do registo, use o campo .spec.override.logLevels, como mostrado no exemplo seguinte:
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
O valor no campo containerName tem de ser um dos seguintes:
reconciler, git-sync, hydration-controller, oci-sync ou helm-sync.
Para confirmar que o nível de detalhe dos registos está configurado, execute o seguinte comando:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
A verbosidade do registo pode ser encontrada como um dos args dentro de
spec.template.spec.containers[] e tem o seguinte aspeto: -v=0, em que 0 é a verbosidade do registo atual. Neste exemplo, um valor de detalhe do registo de 0 registaria apenas eventos críticos.