Für Config Sync gelten dieselben Logging-Konventionen wie für Kubernetes. Standardmäßig ist die Logging-Ausführlichkeit auf 2 eingestellt.
Für jeden 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 vongit-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:
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.Rufen Sie eine Liste aller Deployments ab, die mit Config Sync zusammenhängen. Die Namen und die Anzahl der Deployments können sich ändern.
kubectl get deployments -n=config-management-system
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
Nachdem Sie alle relevanten Deployments geändert haben, bearbeiten Sie das Objekt
config-management-operator
noch einmal und legen Siereplicas
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.