nomos 命令行工具可帮助执行 Config Sync 的常见管理任务,例如生成诊断归档。归档的确切输出和布局随时可能变化,因此不会被视为 API。Config Sync 代码库中提供了 nomos 的代码。
您可以通过运行 kubectl get 或 kubectl 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 获取的信息:
- Nomos 版本显示 Config Sync 版本,即
nomos version的输出。 - Nomos 状态显示
nomos status状态的输出,例如同步的提交以及任何错误。 - 有关 Config Sync 自定义资源的信息:
- 对于集群范围资源(例如 ConfigManagement 和 ClusterSelector),位于以下位置:
raw/cluster-1/cluster/configmanagement/。 - 对于命名空间范围资源(例如 RootSync、RepoSync 和 ResourceGroup),位于以下位置:
raw/cluster-1/namespaces/namespace-1。
- 对于集群范围资源(例如 ConfigManagement 和 ClusterSelector),位于以下位置:
- 由 Config Sync 同步和管理的资源:
- 如果您已启用 RootSync 和 RepoSync API,则它位于 ResourceGroup 的规范中。您可以获取这些资源的数量及其种类、命名空间和名称。
- 如果您未启用 RootSync 和 RepoSync API,并且在
ConfigManagement对象(已弃用)中指定了 git 字段,则资源的完整内容位于 ClusterConfigs 和 NamespaceConfigs 中。您应该迁移ConfigManagement对象。
- 所有 Config Sync Pod 的日志都位于
raw/cluster-1/namespaces/pod-namespace-1/pod-name-1/container-name.txt下。 - 所有 Config Sync Pod 的完整内容:位于
raw/cluster-1/namespaces/pod-namespace-1/pods.txt下 - 是否启用了 Config Sync RootSync 和 RepoSync API(即使用多代码库模式)?
- 检查
ConfigManagement资源,如果看到spec.enableMultiRepo: true,则说明已启用 RootSync API 和 RepoSync API。 - 如果看到 RootSync、RepoSync 或协调器 Pod 等组件,则说明您已启用 RootSync 和 RepoSync API。
- 如果看到 git-importer Pod 等组件,则说明 RootSync 和 RepoSync API 未启用,并且您需要迁移
ConfigManagement对象。
- 检查