Ver registros de Anthos Config Management

Ver registros

Anthos Config Management sigue las mismas convenciones de registro que Kubernetes. De forma predeterminada, la verbosidad del registro se establece en 2.

En cada clúster inscrito, varias implementaciones se ejecutan en pods en el espacio de nombres config-management-system. Cada una de estas implementaciones representa un subsistema diferente, como lo indica el nombre de la implementación.

  • git-importer: importa las configuraciones que se encuentran en el repositorio al clúster como CustomResourceDefinitions (CRD).
  • monitor: expone los extremos de las métricas y la supervisión.
  • syncer: garantiza que la configuración del clúster se mantenga sincronizada con las CRD creadas por git-importer.

Aunque las tareas se dividen por implementación, no puedes consultar los registros de una implementación. Sin embargo, puedes usar un selector de etiquetas. Cada implementación tiene un selector de etiquetas app=[Deployment name].

Usa el selector de etiquetas de una implementación para ver sus registros. En el siguiente ejemplo, se muestran los registros de la implementación syncer.

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

El pod git-importer tiene dos contenedores diferentes, importer y git-sync. Para ver los registros de solo uno de estos contenedores, especifícalo con la opción -c. En el siguiente ejemplo, se muestran los registros del contenedor importer:

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

Cambia la verbosidad de los registros

La verbosidad predeterminada de los registros es 2. Si necesitas aumentar la verbosidad de la depuración, sigue estos pasos.

  1. Edita la Implementación de config-management-operator:

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

    En el editor interactivo, cambia el valor de replicas a 0. Esto evita que el operador revierta los cambios que realizarás a continuación.

  2. Obtenga una lista de todas las implementaciones relacionadas con Anthos Config Management. La cantidad de implementaciones y sus nombres están sujetos a cambios.

    kubectl get deployments -n=config-management-system
    
  3. Para cada implementación que estés depurando o supervisando, edita el objeto. Reemplaza syncer con el nombre de la implementación que desees cambiar.

    kubectl edit deployment syncer
    
  4. Después de modificar todas las implementaciones relevantes, edita el objeto config-management-operator nuevamente y establece replicas en 1.

    kubectl get deployments -n=config-management-system
    

Cuando termines de depurar, puedes reducir la verbosidad de los registros a 2 para conservar espacio en el disco en tus nodos. Para ello, sigue el procedimiento nuevamente y establece el valor en 2.

Encuentra la confirmación de Git que actualizó un objeto

Cuando el operador aplica un cambio a un objeto de Kubernetes debido a una actualización del repositorio, el hash de la confirmación de Git se almacena en la anotación configmanagement.gke.io/sync-token. Para ver este hash, usa 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

Luego, puedes usar comandos como git show [HASH] para ver la información sobre la confirmación.

¿Qué sigue?