nomos bugreport 内容

nomos 命令行工具可帮助执行 Config Sync 的常见管理任务,例如生成诊断归档。归档的确切输出和布局随时可能变化,因此不会被视为 API。Config Sync 代码库中提供了 nomos 的代码。

您可以通过运行 kubectl getkubectl logs 从集群中获取类似信息,但 nomos bugreport 的优势在于它会创建有关 Config Sync 系统的关键信息的归档。与 Google Cloud 支持团队联系时,提供 nomos bugreport 输出会很有帮助。

您还可以将 nomos bugreport 的输出用于您自己的调试或内部支持。

nomos bugreport 输出文件结构如下所示:

- raw/
  - cluster/
    - configmanagement/
  - namespaces/
    - config-management-monitoring/
    - config-management-system/
    - gatekeeper-system/
    - resource-group-system/
    - kube-system/
- processed/
  - status.txt
  - version.txt

您可以从 nomos bugreport 获取的信息:

  1. Nomos 版本显示 Config Sync 版本,即 nomos version 的输出。
  2. Nomos 状态显示 nomos status 状态的输出,例如同步的提交以及任何错误。
  3. 有关 Config Sync 自定义资源的信息:
    1. 对于集群范围资源(例如 ConfigManagement 和 ClusterSelector),位于以下位置:raw/cluster-1/cluster/configmanagement/
    2. 对于命名空间范围资源(例如 RootSync、RepoSync 和 ResourceGroup),位于以下位置:raw/cluster-1/namespaces/namespace-1
  4. 由 Config Sync 同步和管理的资源:
    1. 如果您已启用 RootSync 和 RepoSync API,则它位于 ResourceGroup 的规范中。您可以获取这些资源的数量及其种类、命名空间和名称。
    2. 如果您未启用 RootSync 和 RepoSync API,并且在 ConfigManagement 对象(已弃用)中指定了 git 字段,则资源的完整内容位于 ClusterConfigs 和 NamespaceConfigs 中。您应该迁移 ConfigManagement 对象
  5. 所有 Config Sync Pod 的日志都位于 raw/cluster-1/namespaces/pod-namespace-1/pod-name-1/container-name.txt 下。
  6. 所有 Config Sync Pod 的完整内容:位于 raw/cluster-1/namespaces/pod-namespace-1/pods.txt
  7. 是否启用了 Config Sync RootSync 和 RepoSync API(即使用多代码库模式)?
    1. 检查 ConfigManagement 资源,如果看到 spec.enableMultiRepo: true,则说明已启用 RootSync API 和 RepoSync API。
    2. 如果看到 RootSync、RepoSync 或协调器 Pod 等组件,则说明您已启用 RootSync 和 RepoSync API。
    3. 如果看到 git-importer Pod 等组件,则说明 RootSync 和 RepoSync API 未启用,并且您需要迁移 ConfigManagement 对象