Anthos Config Management-Logs aufrufen

Logs ansehen

Anthos Config Management folgt den gleichen Logging-Konventionen wie Kubernetes. Standardmäßig ist die Logging-Ausführlichkeit auf 2 eingestellt.

Auf jedem registrierten Cluster werden im Namespace config-management-system mehrere Deployments in Pods ausgeführt. Jedes der Deployments stellt ein anderes Subsystem dar, wie es auch der Name des jeweiligen Deployments anzeigt.

  • git-importer: Importiert im Repository gefundene Konfigurationen als CustomResourceDefinitions (CRDs) in den Cluster.
  • monitor: Zeigt Monitoring- und Messwertendpunkte an.
  • syncer: Sorgt für die Synchronisierung der Clusterkonfiguration mit den von git-importer erstellten CRDs.

Die Aufgaben sind zwar nach Deployment unterteilt, Sie können jedoch die Logs eines Deployments nicht abfragen. Allerdings können Sie einen Labelselektor verwenden. Jedes Deployment hat einen Labelselektor app=[Deployment name].

Verwenden Sie den Labelselektor eines Deployments, um dessen Logs aufzurufen. Das folgende Beispiel zeigt die Logs für das Deployment syncer.

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

Der Pod git-importer hat zwei verschiedene Container: importer und git-sync. Wenn Sie die Logs für nur einen dieser Container aufrufen möchten, geben Sie ihn mit der Option -c an. Das folgende Beispiel zeigt die Logs für den Container importer:

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

Logging-Ausführlichkeit ändern

Die standardmäßige Logging-Ausführlichkeit ist 2. Wenn Sie für das Debugging die Ausführlichkeit erhöhen müssen, gehen Sie so vor:

  1. Bearbeiten Sie das Deployment config-management-operator:

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

    Ändern Sie im interaktiven Editor den Wert von replicas zu 0. Dadurch wird verhindert, dass der Operator die unten vorgenommenen Änderungen rückgängig macht.

  2. Rufen Sie eine Liste aller Deployments ab, die sich auf Anthos Config Management beziehen. Die Namen und die Anzahl der Deployments können sich ändern.

    kubectl get deployments -n=config-management-system
    
  3. Bearbeiten Sie das Objekt jedes Deployments, für das Sie ein Debugging oder ein Monitoring durchführen. Ersetzen Sie syncer durch den Namen des Deployments, das Sie ändern möchten.

    kubectl edit deployment syncer
    
  4. Nachdem Sie alle relevanten Deployments geändert haben, bearbeiten Sie das Objekt config-management-operator noch einmal und legen Sie replicas auf 1 fest.

    kubectl get deployments -n=config-management-system
    

Nach Abschluss des Debuggings können Sie die Ausführlichkeit der Logs wieder auf 2 reduzieren, um Speicherplatz auf den Knoten einzusparen. Führen Sie dazu noch einmal die Anleitung aus und geben Sie als Wert 2 ein.

Git-Commit suchen, mit dem ein Objekt aktualisiert wurde

Wenn der Operator aufgrund einer Aktualisierung des Repository eine Änderung auf ein Kubernetes-Objekt anwendet, wird der Hash für das Git-Commit in der Annotation configmanagement.gke.io/sync-token gespeichert. Diesen Hash können Sie mit kubectl get aufrufen:

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

Sie können dann Befehle wie git show [HASH] verwenden, um Informationen zum Commit aufzurufen.

Weitere Informationen