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
RootSync
objeto, execute o seguinte comando:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system
Substitua
ROOT_SYNC_NAME
pelo 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_NAMESPACE
Substitua 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
RootSync
objeto: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.generation
no objeto ResourceGroup. - A condição
Stalled
tem um valor destatus
de"False"
. - Cada item em
.status.resourceStatuses
tem umactuation
deSucceeded
, umreconcile
deSucceeded
e umstatus
deCurrent
.
Ver erros
Os objetos RootSync
e 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
RootSync
objeto, execute o seguinte comando:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
Substitua
ROOT_SYNC_NAME
pelo nome do objetoRootSync
.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 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-system
Substitua
ROOT_SYNC_NAME
pelo nome do objetoRootSync
.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 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 yaml
Substitua
ROOT_SYNC_NAME
pelo 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 yaml
Substitua 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
RootSync
ouRepoSync
, 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 objetoRootSync
ouRepoSync
.Para
RootSync
, o nome do reconciliador éroot-reconciler-ROOT_SYNC_NAME
ouroot-reconciler
se o nome deRootSync
forroot-sync
.Para
RepoSync
, o nome do reconciliador éns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ouns-reconciler-NAMESPACE
se o nome deRepoSync
forrepo-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-sync
ouhelm-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.