Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Monitorar objetos RootSync e RepoSync

Esta página mostra maneiras diferentes de monitorar seus objetos RootSync e RepoSync. Por exemplo, talvez você queira verificar se a confirmação mais recente em uma fonte da verdade está aplicada a um cluster e reconciliada.

Ver registros

Esta seção explica como visualizar os registros para os objetos RootSync e RepoSync. A visualização dos registros fornece informações sobre possíveis erros.

  • Para ver os registros do reconciliador de RootSync ou RepoSync, execute o seguinte comando:

    kubectl logs -n config-management-system deployment/RECONCILER_NAME CONTAINER_NAME
    

    Substitua:

    • RECONCILER_NAME: o nome do reconciliação do objeto RootSync ou RepoSync.

      • Para RootSync, o nome da reconciliação vai ser root-reconciler-ROOT_SYNC_NAME ou root-reconciler, se o nome de RootSync for root-sync.

      • Para RepoSync, o nome do reconciliador será ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH ou ns-reconciler-NAMESPACE se o nome do RepoSync for repo-sync, em que NAMESPACE é o namespace. em que você criou o objeto do RepoSync.

    • CONTAINER_NAME: o nome do contêiner.

      • git-sync: o contêiner git-sync extrai configurações do seu repositório Git para um diretório local em que o contêiner de reconciliação pode lê-los.

      • oci-sync: o contêiner oci-sync extrai as configurações da sua imagem OCI para um diretório local que o contêiner de reconciliação pode ler.

      • helm-sync: o contêiner helm-sync extrai configurações do seu gráfico do Helm para um diretório local que o contêiner de reconciliação pode ler.

      • hydration-controller: o contêiner hydration-controller renderiza todas as configurações Helm ou Kustomize extraídas do seu repositório e, em seguida, salva as configurações renderizadas no volume compartilhado do contêiner reconciler para processamento posterior.

      • reconciler: o contêiner reconciler aplica essas configurações ao cluster.

      • otel-agent: o contêiner otel-agent é um agente do OpenTelemetry para recuperar e exportar métricas do Config Sync.

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 o ROOT_SYNC_NAME pelo 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:

    • REPO_SYNC_NAME: o nome do objeto do RepoSync.
    • 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

Para cada objeto RootSync ou RepoSync, há um objeto ResourceGroup exclusivo que captura o status de reconciliação dos recursos gerenciados declarados na fonte de verdade. O objeto ResourceGroup tem o mesmo namespace e nome do 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. Quando a confirmação mais recente é aplicada com sucesso, o objeto ResourceGroup contém o grupo, o tipo, o namespace e o nome dos recursos gerenciados da confirmação mais recente.

Execute o seguinte comando para receber um objeto ResourceGroup.

  • 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 e Reconciling têm status como "False".
  • Cada item no campo .status.resourceStatuses tem o status Current.

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 objeto RootSync.

  • 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 objeto do RepoSync.
    • NAMESPACE: o namespace em que você criou seu repositório de namespace.

A tabela a seguir explica os subcampos no campo status:

Campo Descrição
status.rendering.errors Os erros encontrados durante o processo de renderização de configurações do kustomize da fonte de verdade. Isso pode não incluir todos os erros encontrados, já que o Config Sync trunca os erros se houver muitos erros.
status.rendering.errorSummary.totalCount Um número inteiro que rastreia o número total de erros encontrados durante o processo de renderização das configurações da fonte de verdade.
status.rendering.errorSummary.truncated Um booleano que indica se o campo status.rendering.errors inclui todos os erros encontrados durante o processo de renderização das configurações da fonte da verdade.
status.rendering.errorSummary.errorCountAfterTruncation Um número inteiro que rastreia o número de erros no campo status.rendering.errors.
status.source.errors Os erros encontrados ao ler e analisar as configurações da fonte de verdade. Isso pode não incluir todos os erros encontrados, já que o Config Sync trunca erros se houver muitos erros.
status.source.errorSummary.totalCount Um número inteiro que rastreia o número total de erros encontrados ao ler e analisar as configurações da fonte da verdade.
status.source.errorSummary.truncated Um booleano que indica se o campo status.source.errors inclui todos os erros encontrados ao ler e analisar as configurações da fonte da verdade.
status.source.errorSummary.errorCountAfterTruncation Um número inteiro que rastreia o número de erros no campo status.source.errors.
status.sync.errors Os erros encontrados ao aplicar as configurações da fonte da verdade. Isso pode não incluir todos os erros encontrados, já que o Config Sync trunca os erros se houver muitos erros.
status.sync.errorSummary.totalCount Um número inteiro que rastreia o número total de erros encontrados ao aplicar as configurações da fonte da verdade.
status.sync.errorSummary.truncated Um booleano que indica se o campo status.sync.errors inclui todos os erros encontrados ao aplicar as configurações da fonte da verdade.
status.sync.errorSummary.errorCountAfterTruncation Um número inteiro que rastreia o número de erros no campo status.sync.errors.
status.conditions Uma lista de condições que rastreiam o estado atual de um objeto RootSync ou RepoSync.
Quando o campo type de uma condição for Reconciling ou Stalled:
  • O campo errors da condição rastreia os erros encontrados ao reconciliar o objeto RootSync ou RepoSync.
  • O campo errorSummary da condição resume os erros no campo errors da condição.
  • O campo errorsSourceRefs da condição está vazio.
Quando o tipo de condição é Syncing:
  • O campo errors da condição está vazio.
  • O campo errorsSourceRefs da condição rastreia a origem dos erros. A origem dos erros pode ser status.rendering.errors, status.source.errors ou status.sync.errors.
  • O campo errorSummary da condição resume os erros indicados no campo errorsSourceRefs.

Ver detalhes do objeto

Para visualizar detalhes dos objetos RootSync e RepoSync, use kubectl describe. Esse comando pode fornecer mais informações sobre possíveis erros.

  • Para visualizar os detalhes do objeto RootSync, execute o seguinte comando:

    kubectl describe rootsync ROOT_SYNC_NAME -n config-management-system
    

    Substitua o ROOT_SYNC_NAME pelo nome do objeto RootSync.

  • Para ver os detalhes do objeto do RepoSync, execute o seguinte comando:

    kubectl describe reposync REPO_SYNC_NAME -n NAMESPACE
    

    Substitua:

    • REPO_SYNC_NAME: o nome do objeto do RepoSync.
    • 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 para 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 visualizar o status de reconciliação do objeto 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 objeto RootSync.

  • 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 objeto do RepoSync.
    • 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

A seguir