Como visualizar registros do Anthos Config Management

Ver registros

O Anthos Config Management segue as mesmas convenções de geração de registros do Kubernetes. Por padrão, o detalhamento de geração de registros é definido como 2.

Em cada cluster registrado, várias implantações são executadas em pods no namespace config-management-system. Cada uma dessas implantações representa um subsistema diferente, conforme indicado pelo nome do Deployment.

  • git-importer: importa os configs encontradas no repositório no cluster como CustomResourceDefinitions (CRDs).
  • monitor: expõe endpoints de monitoramento e métricas.
  • syncer: garante que a configuração do cluster seja mantida em sincronia com os CRDs criados por git-importer.

As tarefas são divididas por implantação, mas não é possível consultar os registros da implantação. No entanto, é possível usar um seletor de rótulos. Cada Deployment tem um seletor de rótulo app=[Deployment name].

Use o seletor de rótulos do Deployment para visualizar os registros. O exemplo a seguir mostra os registros do Deployment syncer.

kubectl logs --namespace config-management-system -l app=syncer

O pod git-importer tem dois contêineres diferentes, importer e git-sync. Para ver os registros de apenas um desses contêineres, especifique-os com a opção -c. O exemplo a seguir mostra os registros do contêiner importer:

kubectl logs --namespace=config-management-system \
  -l app=git-importer \
  -c importer

Como mudar o detalhamento de geração registros

O detalhamento de geração de registros padrão é 2. Se precisar aumentar o detalhamento para a depuração, siga estas etapas.

  1. Edite o Deployment config-management-operator:

    kubectl edit deployment -n=kube-system config-management-operator
    

    No editor interativo, altere o valor de replicas para 0. Isso impede que o operador reverta as alterações feitas abaixo.

  2. Receba uma lista de todas as implantações relacionadas ao Anthos Config Management. Os nomes e o número de implantações estão sujeitos a alterações.

    kubectl get deployments -n=config-management-system
    
  3. Para cada Deployment que você estiver depurando ou monitorando, edite o objeto. Substitua syncer pelo nome do Deployment que você quer alterar.

    kubectl edit deployment syncer
    
  4. Após modificar todas as implantações relevantes, edite o objeto config-management-operator novamente e defina replicas como 1.

    kubectl get deployments -n=config-management-system
    

Quando terminar a depuração, será possível reduzir o detalhamento dos registros de volta para 2, para economizar espaço em disco nos nós. Para fazer isso, siga o procedimento novamente, definindo o valor como 2.

Como encontrar a confirmação de Git que atualizou um objeto

Quando o operador aplica uma alteração a um objeto do Kubernetes devido a uma atualização do repositório, o hash para a confirmação do Git é armazenado na anotação configmanagement.gke.io/sync-token. Para visualizar este hash, use kubectl get:

kubectl get clusterrolebinding namespace-readers -oyaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRoleBinding","metadata":{"annotations":{"configmanagement.gke.io/managed":"enabled","configmanagement.gke.io/cluster-name":"config-management-cluster","configmanagement.gke.io/source-path":"cluster/namespace-reader-clusterrolebinding.yaml","configmanagement.gke.io/sync-token":"5edf7fda0cfccc351adfa2811954c80c812c26c5"},"creationTimestamp":null,"name":"namespace-readers"},"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"namespace-reader"},"subjects":[{"apiGroup":"rbac.authorization.k8s.io","kind":"User","name":"cheryl@foo-corp.com"}]}
    configmanagement.gke.io/managed: enabled
    configmanagement.gke.io/cluster-name: config-management-cluster
    configmanagement.gke.io/source-path: cluster/namespace-reader-clusterrolebinding.yaml
    configmanagement.gke.io/sync-token: 5edf7fda0cfccc351adfa2811954c80c812c26c5
  creationTimestamp: 2019-02-11T19:39:37Z
  name: namespace-readers
  resourceVersion: "6301538"
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/namespace-readers
  uid: c45257a4-2e34-11e9-8a5e-42010a800134
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: namespace-reader
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: cheryl@foo-corp.com

É possível, então, usar comandos como git show [HASH] para visualizar informações sobre a confirmação.

A seguir