错误参考信息
本页面介绍了 Config Sync 错误代码以及处理这些错误的建议操作。
Config Sync 错误消息由 KNV1234
格式的错误 ID 组成,其中 1234
是一个唯一编号,后跟问题描述和建议解决方法。K
继承自 Kubernetes 惯例,前缀为 N
的规则特定于 nomos
,V
特定于在代码库和集群的初始状态下可检测到的错误。在代码库和集群的初始状态下可检测到的错误的代码格式为 KNV1XXX
。只能在运行时检测到的错误的代码格式为 KNV2XXX
。
KNV 错误表
错误代码 | 说明 | 建议采取的操作 |
---|---|---|
|
在 Config Sync 版本 1.6.1 中,InternalError 的 ID 更改为 |
不适用 |
|
Config Sync 1.3 中已弃用。 |
不适用 |
|
Config Sync 1.3 中已弃用。 |
不适用 |
|
使用分层代码库结构时,包含命名空间配置的目录不得包含任何子目录。 不含命名空间配置的目录是抽象命名空间目录,并且有一些目录沿用自该目录。因此,抽象命名空间目录必须包含子目录。包含命名空间配置的目录是命名空间目录,这种目录不能被继承,因此不得包含任何子目录。 |
请从父目录中移除命名空间配置,或将子目录移到其他位置。 |
|
集群级对象不得声明 |
从 |
|
管理注解的唯一有效设置是 |
确保管理注解为 如需了解详情,请参阅管理对象。 |
|
无法解析代码库中声明的对象。 |
验证您的 YAML 格式。例如,您可以使用
如果 |
|
使用非结构化代码库时,不得在抽象命名空间目录中声明配置。 |
将错误消息中列出的配置移至命名空间目录。 如需了解详情,请参阅使用非结构化代码库。 |
|
使用分层代码库结构时,配置必须声明与包含它们的命名空间目录匹配的命名空间,或省略该字段。 |
更新错误消息中标识的命名空间字段。 如需了解详情,请参阅分层代码库的结构。 |
|
配置不得声明以 |
请确保您使用的是以下受支持的注解之一:
|
|
配置的标签键不得以 |
更新错误消息中标识的所有标签。例如,如果您尝试声明名为 |
|
Config Sync 1.3 中已弃用。 |
不适用 |
|
配置引用了不存在的 ClusterSelector 或 ContextSelector。选择器必须已存在,才能在配置的注解中使用。 |
请创建任何缺失的选择器;或者,如果选择器已移除,请移除所有引用它的配置。 |
|
ClusterSelector 和 namespaceSelector 配置使用正确的语法,但发现了语法错误。 |
请务必使用适当的数据架构指定配置: |
|
Config Sync 1.3.2 中已弃用。 | 不适用 |
|
使用分层代码库结构时,ConfigManagement Operator 的配置必须存在于代码库的 |
至少为 ConfigManagement Operator 定义一个最低配置。如需了解详情,请参阅分层代码库的结构。 |
|
Config Sync 1.3 中已弃用。 | 不适用 |
|
使用分层代码库结构时,不得在 |
为错误消息中列出的命名空间配置创建一个子目录。如需了解详情,请参阅分层代码库的结构。 |
|
使用分层代码库结构时,命名空间配置声明 metadata.name ,并且其值必须与命名空间的目录名称匹配。 |
更正命名空间的 metadata.name 或其目录。 |
|
没有为集群中的资源定义任何 CustomResourceDefinition。 |
为错误消息中引用的资源创建 CustomResourceDefinition。非内置 Kubernetes 对象的资源类型必须具有 CustomResourceDefinition。 |
|
使用分层代码库时,无法在 |
将错误消息中引用的资源移出 |
|
代码库配置中的 |
如果您的代码库格式与支持的版本兼容,请更新 |
|
目录名称必须少于 64 个字符,由小写字母数字字符或“-”组成,且必须以字母数字字符开头和结尾。 |
重命名或移除错误命名的目录。 |
|
同一种类的配置在同一命名空间及其父级抽象命名空间中必须具有唯一的名称。 |
重命名或移除错误消息中引用的所有配置,使其均具有唯一的名称。 |
|
同一目录中不能存在多个命名空间资源。 |
请移除重复的配置,确保剩余的命名空间资源不超过一个。 |
|
所有配置都必须声明 |
将 |
|
如果 |
移除有问题的配置,或转换代码库以使用 |
|
如果您使用的是分层代码库,则只能在 |
确保 |
|
禁止声明
从 Config Sync 1.17.0 版开始,命名空间 |
如果您声明了
如果您声明了
如果您之前已同步到分层代码库,并且必须声明控制器命名空间与所有资源,请考虑切换到非结构化代码库,以便在源代码结构中更加灵活。 |
|
提供的 |
更改
如果 |
|
Config Sync 1.3 中已弃用。 | 不适用 |
|
禁止在 |
移动有问题的配置,使其位于合法目录中。如需详细了解命名空间级对象,请参阅命名空间级对象。 |
|
禁止在 |
移动有问题的配置,使其位于合法目录中。如需详细了解集群级对象,请参阅集群级对象。 |
|
Config Sync 1.3 中已弃用。 | 不适用 |
|
此资源种类不得在 |
移除有问题的资源。如需详细了解 |
|
在 |
将 |
|
Config Sync 无法配置此对象。 |
从代码库中移除有问题的配置。 |
|
包含配置的抽象命名空间目录必须至少包含一个命名空间子目录。 |
在抽象命名空间目录下添加一个命名空间目录,向抽象命名空间目录添加命名空间配置,或者移除抽象命名空间目录中的配置。 |
|
不允许使用指定了 |
从源代码库中移除 |
|
此 |
更新 |
|
不允许移除自定义资源定义 (CRD) 并将相应的自定义资源保留在代码库中。 |
移除 CRD 以及自定义资源。 |
|
CustomResourceDefinition 的名称无效。 |
将名称更改为错误消息中的建议名称。 |
|
配置使用的是已弃用的 Group 和 Kind。 |
请将组或种类更改为错误消息中的建议。 |
|
集群级资源不得声明 |
从集群范围的资源中移除 metadata.namespace 字段。 |
|
命名空间级资源必须声明 |
将缺失的字段添加到命名空间级资源中。 |
|
配置包含无效的注解值。 |
请按照错误消息中的说明解决错误。 |
|
|
更新
|
|
资源是在非代管命名空间中声明的。 |
您可以移除 |
|
资源具有非法标签。 |
移除错误消息中列出的非法标签。 |
|
命名空间代码库只能在其适用的命名空间中声明命名空间级资源。 |
确保所有命名空间代码库正确声明了命名空间级资源。
例如,
例如,如果 除了确保正确声明命名空间级资源外,还要确保在根代码库中声明命名空间。必须这样做,因为命名空间是集群级的。 |
|
一个命名空间代码库最多只能声明一个 Kptfile 资源。 |
只移除一个 Kptfile 资源。 |
|
在多个可信来源中管理对象时,在多个来源中声明同一对象(匹配的组、种类、名称和命名空间)时,可能会发生冲突。 例如,如果同一个对象由 RootSync 和 RepoSync 管理,RootSync 胜出。如果先应用 RootSync,RepoSync 会报告 KNV1060 状态错误。如果先应用 RepoSync,RootSync 会覆盖 RepoSync 的对象,并且 RepoSync 会在看到更新时报告 KNV1060 状态错误。 |
如需解决冲突,请更新配置以与其他可信来源匹配,或从其中一个来源中删除存在冲突的对象。
|
|
|
请按照错误消息中的说明修正配置错误。 |
|
Kptfile 没有有效的商品目录字段。Kptfile 应包含一个同时指定了标识符和命名空间的非空目录字段。 |
在 Kptfile 中指定 |
|
在根代码库中找到了 Kptfile。只有命名空间级代码库支持 Kptfile。 |
从根代码库中移除 Kptfile。 |
|
无法解析代码库中的 |
请按照错误消息中的说明操作。例如,您可能需要重新运行
在 |
|
CustomResourceDefinition 格式错误。 |
请检查错误消息指定的字段,确保其值的格式正确。 |
|
配置对象必须仅声明集群选择器注解。当旧版注解 ( |
从 |
|
协调器无法将声明的字段编码为与服务器端应用兼容的格式。这可能是因为架构已过时。 |
请检查错误消息指定的字段,并确保该字段与资源类型的架构匹配。 |
|
呈现过程遇到了用户可操作的问题。 |
如果 Git 代码库包含 Kustomize 配置,但 Git 同步目录中不存在
如果错误是由
如果从公共代码库拉取远程库时发生 |
|
协调器已调整了自己的 RootSync 或 RepoSync 对象。RootSync 对象可以管理其他 RootSync 和 RepoSync 对象;RepoSync 对象可以管理其他 RepoSync 对象,但它们无法自行管理。 |
从与其同步的可信来源中移除 RootSync 或 RepoSync 对象。 |
|
访问文件系统资源的操作系统级系统调用失败。 |
此错误可能是由 YAML 配置无效或使用特殊字符导致的。如果您的 YAML 配置无效,您会看到类似于以下内容的错误消息:
如果文件名或路径包含特殊字符,您可能会看到类似于 |
|
访问 API 服务器的请求失败。 |
您可能遇到了 API 发现错误。如需了解详情,请参阅 API 发现错误。 |
|
通用操作系统级系统调用失败。 | |
|
Config Sync 无法从可信来源读取数据。 |
有多个问题可能会导致此错误。如需了解有关如何解决连接到可信来源的常见问题的提示,请参阅排查连接到可信来源的问题。 |
|
Config Sync 正在与其他控制器争夺资源。此类争夺会消耗大量资源,并可能会降低性能。 | 如需了解有关如何诊断和解决控制器争用的提示,请参阅排查控制器争用问题。 |
|
为了帮助防止意外删除,Config Sync 不允许您通过单次提交移除所有命名空间或集群级资源。 |
如果 Config Sync 准入 webhook 已停用,请还原删除所有资源的提交。
如果您要删除受管的全部资源,请完成以下步骤:
|
|
Config Sync 也尝试修改 API 服务器上的资源时,系统会修改或删除该资源。 |
如果此类错误仅在启动时出现或者很少出现,您可以忽略这些错误。
如果这些错误不是暂时性的(持续几分钟),则可能表示存在严重问题,并且 |
|
这是一个泛指的错误,表示 Config Sync 无法将某些配置同步到集群。 |
有多个问题可能会导致此错误。如需了解有关如何解决同步常见问题的提示,请参阅排查同步问题。 |
|
这是一个泛指的错误,表示某个资源或一组资源存在问题。 |
错误消息包含导致错误的特定资源。调查这些资源。 |
|
需要特定资源才能继续操作,但未找到该资源。例如,ConfigManagement Operator 尝试更新资源,但该资源在计算更新时已被删除。 |
创建或恢复缺失的资源。 |
|
此错误报告表示在只允许使用其中一个 APIResource 的上下文中发现了多个 API 资源实例。例如,集群中只能存在一个 |
移除其他 APIResource。 |
|
命名空间协调器没有足够的权限管理资源。 |
确保协调器具有足够的权限。 |
|
非法修改 Config Sync 网络钩子配置时,会出现此警告。系统会忽略非法网络钩子配置。 |
移除非法修改的网络钩子。 |
|
渲染过程遇到了内部问题。例如,Config Sync 无法访问文件系统。 |
此错误可能表示 Pod 健康状况不佳。您可以通过运行以下命令重启协调器 Pod: # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
此错误表示暂时性问题,稍后应自动解决。例如,如果呈现状态与源配置不匹配,您可能会看到此错误。 |
错误应该会自动解决。 |
|
|
请提交包含您运行的确切命令和收到的消息的 bug 报告。 |
|
您遇到的的错误包含未被记录的错误消息。 |
我们尚未针对您遇到的这种错误编写文档。 |
无 KNV 代码的错误消息
Config Sync 协调器报告的错误具有 KNV 错误代码,但其他组件报告的错误不包含 KNV 代码。例如,“权限遭拒”错误来自舰队控制器,该控制器是 Config Sync 之上的一个层。
下表列出了一些不含 KNV 前缀的常见错误。
错误消息 | 建议采取的操作 |
---|---|
|
无法构建导出器
当 Open Telemetry 收集器中的组件无法访问同一命名空间下的默认服务帐号时,您可能会注意到 在集群中启用 Workload Identity 时,通常发生此问题。 要解决此问题,请按照 Monitoring Config Sync 中的说明向默认服务帐号授予指标写入权限。
如果在设置 IAM 后错误仍然存在,请重启 |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
服务器证书验证失败
如果
此消息表示 Git 服务器配置了自定义证书授权机构 (CA) 的证书。但是,自定义 CA 未正确配置,导致
如需解决此问题,首先,您可以验证是否已在 RootSync 或 RepoSync 对象中指定
接下来,如果该字段已配置且 Secret 对象存在,请确保 Secret 对象包含完整证书。 以下示例展示了如何列出服务器证书: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' 您可以要求网络管理团队为您获取 CA 证书。 |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
无法检索拉取密钥,映像拉取可能不会成功如果您为 GKE on VMware 使用了私有注册表,则 Config Sync 安装或升级可能会卡住。您会看到与此消息类似的错误。 如需解决此问题,请在安装或升级 Config Sync 之前,按照使用私有注册表更新 Config Sync 中的步骤操作。 |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
权限遭拒如果您在尝试配置 Config Sync 时收到与此示例类似的错误,则说明您可能没有 GKE Hub Admin 角色。 为确保您拥有所需的权限,请确保您已授予所需的 IAM 角色。 |
后续步骤
- 查看已知问题。
- 阅读有关如何排查 Config Sync 问题的说明。
- 如果您需要其他支持,请与 Cloud Customer Care 联系。