问题排查简介

如果您在使用 Config Sync 时遇到问题,本页面将向您介绍一些常见工具和步骤,这些工具和步骤可帮助您找出并解决所遇到的问题。

请升级到受支持的版本。

考虑将 Config Sync 升级到受支持的版本。升级通常可以解决常见问题,并让您能够使用最新的功能。为确保您始终使用受支持的版本,您可以启用自动升级(预览)。

使用 nomos 命令行工具

nomos 命令行工具可提供有关 Config Sync 设置的重要数据洞见。在您尝试确定问题来源或需要与 Cloud Customer Care 联系时,以下各部分中介绍的命令特别有用。

查看 Config Sync 状态

nomos status 命令为您提供汇总数据和错误,帮助您了解 Config Sync 安装发生的情况。以下信息可通过 nomos status 获得:

  • 每个集群的安装状态
  • 同步错误(从 Git 读取和协调更改)

创建错误报告

如果您在使用 Config Sync 时遇到问题,需要 Cloud Customer Care 的帮助,您可以使用 nomos bugreport 命令向他们提供有价值的调试信息。

此命令会生成一个带有时间戳的 ZIP 文件,其中包含有关在 kubectl 上下文中设置的 Kubernetes 集群的信息。该文件包含来自 Config Sync Pod 的日志,但不包含来自与 Config Sync 同步的资源的信息。

查看概览信息中心

Config Sync 信息中心可让您大致了解 Config Sync 管理的软件包的状态以及这些软件包中的资源的状态。探索此信息中心可帮助您快速了解 Config Sync 安装的状态,并发现存在问题的软件包。

  • 如需访问信息中心,请在 Google Cloud 控制台中前往功能部分中的配置页面:

    转到“配置”

使用监控和日志分析

监控 Config Sync 并浏览其日志有助于您确定错误的来源,并更好地了解任何意外行为。

了解 Config Sync 指标

使用 Config Sync 指标可了解 Config Sync 的健康状况。

监控 RootSync 和 RepoSync 对象

当您使用 Google Cloud 控制台或 Google Cloud CLI 安装 Config Sync 时,Config Sync 会自动为您创建 RootSync 对象。配置从多个代码库同步时,您将创建 RepoSync 对象,其中包含有关命名空间代码库的配置信息。

监控这些对象可以揭示有关 Config Sync 状态的重要信息。如需了解详情,请参阅监控 RootSync 和 RepoSync 对象

使用服务等级指标 (SLI)

如需在 Config Sync 未按预期工作时收到通知,请使用 Config Sync SLI

查询日志

您可以使用 Logs Explorer 来检索、查看和分析 Config Sync 的日志数据。这些日志可能包含在操作器或协调器 Pod 重启时,nomos bugreport 未能捕获的有价值历史数据。如需查看可能有助于诊断问题的查询示例,请参阅查询 Config Sync 日志

使用 kubectl 命令行工具检查资源

Config Sync 由多个自定义资源组成,您可以使用 kubectl 命令查询这些资源。这些命令可帮助您了解 Config Sync 的每个对象的状态。

您应该了解 Config Sync 管理的 Kubernetes 资源的以下信息:

  • config-management-system 是用于运行 Config Sync 所有核心系统组件的命名空间。
  • configmanagement.gke.ioconfigsync.gke.io 是我们用于所有自定义资源的 API 组。

示例

以下各部分介绍了如何使用 kubectl 命令检查 Config Sync。

列出自定义资源

  • 通过运行以下命令,您可以获取自定义资源的完整列表:

    kubectl api-resources | grep -E "configmanagement.gke.io|configsync.gke.io"
    
  • 通过运行以下命令,可以使用各个自定义资源:

    kubectl get RESOURCE -o yaml.
    

    RESOURCE 替换为您要查询的资源的名称。

    例如,以下命令的输出使您可以检查 RootSync 对象的状态:

    kubectl get rootsync -n config-management-system -o yaml
    

检查对象的令牌注释

您可能希望了解 Config Sync 上次更新托管 Kubernetes 对象的时间。每个代管式对象都会使用上次修改时 Git 提交的哈希值以及包含修改内容的配置的路径进行注解。

例如,如需获取名为 namespace-readers 的 ClusterRoleBinding 的注解,请运行以下命令:

kubectl get clusterrolebinding namespace-readers

输出类似于以下内容:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    configmanagement.gke.io/source-path: cluster/namespace-reader-clusterrolebinding.yaml
    configmanagement.gke.io/token: bbb6a1e2f3db692b17201da028daff0d38797771
  name: namespace-readers
...

如需了解详情,请参阅标签和注释

阅读其他问题排查文档

如果您仍然遇到问题,以下资源可能会有所帮助:

  • 如果您收到错误消息,请参阅错误参考页面,了解有关如何解决错误的建议。

  • 检查您遇到的问题是否是由已知问题引起的。

  • 如果您在某个特定方面遇到困难,目录中按问题类型排查问题部分列出的某个针对性排查问题指南可能会有所帮助。

后续步骤