Esta página mostra diferentes maneiras de monitorar seus
objetos RootSync
e RepoSync
.
Por exemplo, verifique se a confirmação mais recente em uma fonte de verdade
foi aplicada a um cluster e reconciliada.
Ver confirmações sincronizadas
Para verificar qual confirmação está sincronizada com o cluster, confira o
campo .status.sync
no objeto RootSync
ou RepoSync
.
Para ver as confirmações sincronizadas de um objeto
RootSync
, 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:
REPO_SYNC_NAME
: o nome do objetoRepoSync
.REPO_SYNC_NAMESPACE
: o namespace em que você criou seu repositório de namespace.
A saída desses comandos mostra o valor da confirmação de origem e da confirmação sincronizada. Por exemplo, se você executar o comando para o RepoSync, verá uma saída semelhante a esta:
NAME RENDERINGCOMMIT SOURCECOMMIT SYNCCOMMIT
root-sync 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72 66882815f0ef5517df27e864fb1315e97756ab72
O valor na coluna RENDERINGCOMMIT
é a confirmação processada pelo
hydration-controller
. Se nenhuma renderização for necessária, o valor será igual ao da coluna SOURCECOMMIT
. O valor na coluna SOURCECOMMIT
é a confirmação
da fonte de verdade que precisa ser sincronizada com o cluster. O valor na coluna SYNCCOMMIT
é a confirmação implantada no cluster. Se os dois valores nas colunas SOURCECOMMIT
e SYNCCOMMIT
forem os mesmos, a confirmação esperada foi implantada no cluster.
Confirmar se os recursos na confirmação foram reconciliados
Como os ResourceGroups capturam o status de reconciliação dos recursos gerenciados declarados na fonte de informações, é possível examiná-los para confirmar se os recursos da confirmação estão reconciliados.
O objeto ResourceGroup tem o mesmo namespace e nome
que o objeto RootSync
ou RepoSync
. Por exemplo, para o objeto RootSync
com o nome root-sync
no namespace config-management-system
,
o objeto ResourceGroup correspondente também é root-sync
no namespace
config-management-system
.
Para conseguir o objeto ResourceGroup para um objeto
RootSync
:kubectl get resourcegroup ROOT_SYNC_NAME -n config-management-system -o yaml
Para conseguir o objeto ResourceGroup para um objeto
RepoSync
:kubectl get resourcegroup REPO_SYNC_NAME -n REPO_SYNC_NAMESPACE -o yaml
Substitua:
ROOT_SYNC_NAME
: o nome do objeto ResourceGroup que você quer pesquisar.REPO_SYNC_NAME
: o nome do objeto ResourceGroup que você quer pesquisar.REPO_SYNC_NAMESPACE
: o nome do objeto ResourceGroup que você quer pesquisar.
Para confirmar se os recursos na confirmação foram reconciliados, procure o seguinte na saída:
- O
.status.observedGeneration
é igual ao valor do campo.metadata.generation
no objeto ResourceGroup. - As condições
Stalled
eReconciling
têmstatus
como"False"
. - Cada item no campo
.status.resourceStatuses
tem o statusCurrent
.
Ver erros
Os objetos RootSync
e RepoSync
usam o campo status
para rastrear erros encontrados
ao sincronizar as configurações da fonte de verdade com um cluster.
Para acessar o status de um objeto
RootSync
, execute o seguinte comando:kubectl get rootsync ROOT_SYNC_NAME -n config-management-system -o yaml
Substitua o
ROOT_SYNC_NAME
pelo nome do objetoRootSync
.Para acessar o status de um objeto
RepoSync
, execute o seguinte comando:kubectl get reposync REPO_SYNC_NAME -n NAMESPACE -o yaml
Substitua:
REPO_SYNC_NAME
: o nome do objetoRepoSync
.NAMESPACE
: o namespace em que você criou seu repositório de namespace.
Para saber mais sobre os subcampos no campo status
, consulte
Status dos objetos.
Ver detalhes do objeto
Para visualizar detalhes dos objetos RootSync
e RepoSync
e descobrir mais
informações sobre possíveis erros, use o comando kubectl describe
.
A saída desse comando inclui eventos, que podem ser particularmente úteis para depurar problemas como contêineres com restrições de memória (OOMKilled), falhas de programação ou erros de extração de imagem.
Para um formato mais legível, converta a saída para YAML anexando -o yaml
aos
comandos a seguir. Esse formato é especialmente útil quando você precisa examinar parâmetros específicos, anotações ou especificações de recursos.
Para visualizar detalhes de um objeto
RootSync
, execute o seguinte comando:kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
Substitua o
ROOT_SYNC_NAME
pelo nome do objetoRootSync
.Para visualizar detalhes de um objeto
RepoSync
, execute o seguinte comando:kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
Substitua:
REPO_SYNC_NAME
: o nome do objetoRepoSync
.NAMESPACE
: o namespace em que você criou seu repositório de namespace.
Ver se um recurso está pronto
Para saber se os recursos sincronizados com o cluster estão prontos, visualize o status da reconciliação. Por exemplo, a visualização do status de reconciliação pode mostrar se uma implantação sincronizada está pronta para veicular o tráfego.
Para uma fonte de verdade sincronizada com o cluster, os status de reconciliação de todos
os recursos são agregados em um recurso chamado ResourceGroup. Para cada objeto RootSync
ou RepoSync
, um ResourceGroup é gerado para capturar o conjunto de recursos aplicados ao cluster e agregar os status deles.
Para ver o status de reconciliação do objeto do
RootSync
, execute o seguinte comando:kubectl get resourcegroup.kpt.dev ROOT_SYNC_NAME -n config-management-system -o yaml
Substitua o
ROOT_SYNC_NAME
pelo nome do objetoRootSync
.Para ver o status de reconciliação do objeto do
RepoSync
, execute o seguinte comando:kubectl get resourcegroup.kpt.dev REPO_SYNC_NAME -n NAMESPACE -o yaml
Substitua:
REPO_SYNC_NAME
: o nome do objetoRepoSync
.NAMESPACE
: o namespace em que você criou seu repositório de namespace.
Na saída, você verá todos os status de recursos de ResourceGroup. Por exemplo, a saída a seguir mostra que uma implantação chamada nginx-deployment
está pronta:
resourceStatuses:
- group: apps
kind: Deployment
name: nginx-deployment
namespace: default
status: Current
Mostrar registros
Para cada objeto RootSync
e RepoSync
criado, o Config Sync cria uma
implantação de reconciliação para executar a sincronização. Nesta seção, explicamos como exibir os
registros desses reconciliadores. A visualização dos registros pode ajudar durante a depuração de um problema, fornecendo mais informações sobre progresso, avisos e erros além
do que está disponível no status do objeto RootSync
e RepoSync
.
Para ver os registros do validador
RootSync
ouRepoSync
, execute o seguinte comando:kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
Substitua:
RECONCILER_NAME
: o nome do reconciliador do objetoRootSync
ouRepoSync
.Para
RootSync
, o nome da reconciliação vai serroot-reconciler-ROOT_SYNC_NAME
ouroot-reconciler
, se o nome deRootSync
forroot-sync
.Para
RepoSync
, o nome do reconciliador seráns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
ouns-reconciler-NAMESPACE
se o nome doRepoSync
forrepo-sync
, em queNAMESPACE
é o namespace. em que você criou o objeto doRepoSync
.
CONTAINER_NAME
: o nome do contêiner precisa ser um destes valores:reconciler
,git-sync
,hydration-controller
,oci-sync
ouhelm-sync
. Para saber mais sobre esses contêineres, consulte Reconciliando contêineres.
Configurar o nível de registro do reconciliador do RootSync ou RepoSync
Para incluir mais informações nos registros de contêiner, configure o nível de detalhes
dos registros. Por padrão, a maioria dos contêineres tem um valor padrão de 0
para o nível de
verbosidade do registro. As exceções são os contêineres git-sync
e otel-agent
que têm um valor padrão de 5
.
Ao alterar o nível de detalhes do registro, lembre-se de que aumentar esse nível resulta em custos mais altos de geração de registros, porque há um maior volume de dados gravados.
Para alterar o nível de detalhes do registro, use o campo .spec.override.logLevels
, conforme mostrado no exemplo a seguir:
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
precisa ser um dos seguintes:
reconciler
, git-sync
, hydration-controller
, oci-sync
ou helm-sync
.
Para confirmar se o detalhamento do registro está configurado, execute o seguinte comando:
kubectl get deployment.apps/root-reconciler -n config-management-system -o yaml
O detalhamento de registro pode ser encontrado como um dos args
em spec.template.spec.containers[]
e é semelhante a -v=0
, em que 0 é o nível atual. Neste exemplo, um valor de detalhamento do registro de 0 registraria apenas eventos críticos.