问题排查简介

如果您在使用 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 控制台中,前往功能部分的配置页面:

    前往“配置”

使用监控和日志分析

Monitoring Config Sync 并浏览其日志可帮助您确定 bug 的来源,并更好地了解任何意外行为。

了解 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

查询日志

您可以使用日志浏览器检索、查看和分析 Config Sync 的日志数据。这些日志可以包含有价值的历史数据,当运算符或协调器 Pod 重启时,nomos bugreport 不会捕获这些数据。如需查看可能有助于您诊断问题的查询示例,请参阅 Query 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
...

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

参阅其他问题排查文档

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

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

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

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

后续步骤