查看 Anthos Config Management 日志

查看日志

Anthos Config Management 遵循与 Kubernetes 相同的日志记录约定。 默认情况下,日志记录详细程度设置为 2。

在每个已注册的集群上,多个 Deployment 会在 config-management-system 命名空间的 Pod 中运行。其中每个 Deployment 都代表一个不同的子系统,如 Deployment 名称所示。

  • git-importer:将代码库中的配置作为 CustomResourceDefinition (CRD) 导入集群中
  • monitor:公开监控和指标端点
  • syncer:确保集群的配置与 git-importer 创建的 CRD 保持同步

即使任务按 Deployment 划分,也无法查询 Deployment 的日志。但您可以使用标签选择器。每个 Deployment 都有一个标签选择器 app=[Deployment name]

使用 Deployment 的标签选择器查看其日志。以下示例展示了 syncer Deployment 的日志。

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

git-importer Pod 有两个不同的容器:importergit-sync。要仅查看其中一个容器的日志,请使用 -c 选项来指定容器。以下示例展示了 importer 容器的日志:

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

更改日志记录详细程度

默认的日志记录详尽程度为 2。如果您需要提升调试的详细程度,请按照下列步骤操作。

  1. 修改 config-management-operator 部署:

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

    在互动式编辑器中,将 replicas 的值更改为 0。这样可以避免 Operator 还原您在下面所做的更改。

  2. 获取与 Anthos Config Management 相关的所有 Deployment 的列表。Deployment 的名称和数量随时可能有变化。

    kubectl get deployments -n=config-management-system
    
  3. 对于正在调试或监控的每个 Deployment,请修改该对象。 将 syncer 替换为您要更改的 Deployment 的名称。

    kubectl edit deployment syncer
    
  4. 修改完所有相关 Deployment 后,再次修改 config-management-operator 对象并将 replicas 设置为 1。

    kubectl get deployments -n=config-management-system
    

完成调试后,您可能希望将日志的详细程度降低为 2,以节省节点上的磁盘空间。为此,请再次按上述步骤操作,将此值设置为 2。

查找更新对象的 Git 提交

当 Operator 因代码库更新而对 Kubernetes 对象应用更改时,Git 提交的哈希存储在 configmanagement.gke.io/sync-token 注释中。要查看此哈希,请使用 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

然后,您可以使用 git show [HASH] 等命令查看有关此提交的信息。

后续步骤