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-systemSubstitua
ROOT_SYNC_NAMEpelo nome do objetoRootSync.Para ver as confirmações sincronizadas de um objeto
RepoSync, execute o seguinte comando:kubectl get reposync REPO_SYNC_NAME -n REPO_SYNC_NAMESPACESubstitua o seguinte:
REPO_SYNC_NAME: o nome do objetoRepoSync.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 yamlPara obter o objeto ResourceGroup de um objeto
RepoSync:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yamlSubstitua 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 yamlSubstitua
ROOT_SYNC_NAMEpelo nome do objetoRootSync.Para ver o estado de um objeto
RepoSync, execute o seguinte comando:kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yamlSubstitua o seguinte:
REPO_SYNC_NAME: o nome do objetoRepoSync.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-systemSubstitua
ROOT_SYNC_NAMEpelo nome do objetoRootSync.Para ver os detalhes de um objeto
RepoSync, execute o seguinte comando:kubectl describe reposync REPO_SYNC_NAME -n NAMESPACESubstitua o seguinte:
REPO_SYNC_NAME: o nome do objetoRepoSync.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 yamlSubstitua
ROOT_SYNC_NAMEpelo nome do objetoRootSync.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 yamlSubstitua o seguinte:
REPO_SYNC_NAME: o nome do objetoRepoSync.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
RootSyncouRepoSync, execute o seguinte comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAMESubstitua o seguinte:
RECONCILER_NAME: o nome do reconciliador do objetoRootSyncouRepoSync.Para
RootSync, o nome do reconciliador éroot-reconciler-ROOT_SYNC_NAMEouroot-reconcilerse o nome deRootSyncforroot-sync.Para
RepoSync, o nome do reconciliador éns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTHouns-reconciler-NAMESPACEse o nome deRepoSyncforrepo-sync, em queNAMESPACEé o espaço de nomes no qual criou o objetoRepoSync.
CONTAINER_NAME: o nome do contentor tem de ser um dos seguintes valores:reconciler,git-sync,hydration-controller,oci-syncouhelm-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.