本页面列出了受支持的 Config Sync 版本的已知问题。
此处列出的许多问题都已修复。已修复的版本列指出引入了修复的版本。如需收到此修复,请升级到列出的版本或更高版本。
如果您是 Google 开发者计划的成员,请保存此页面,以便在发布与此页面相关的版本说明时收到通知。如需了解详情,请参阅已保存的页面。
如需按产品版本或问题类别过滤已知问题,请从以下下拉菜单中选择过滤条件。
选择 Config Sync 版本:
选择问题类别:
或者,过滤已知问题:
类别 | 已识别的版本 | 已修复的版本 | 问题和解决方法 |
---|---|---|---|
指标 | 1.5.0 | 1.21.0 |
已修复:针对已删除的软件包报告了指标
如果您删除了
RootSync 或 RepoSync 对象之前启用了删除传播,系统才会自动删除 ResourceGroup 对象。
临时解决方法: 删除
将 |
组件健康状况 | 1.15.0 |
协调器无法调度Config Sync 协调器需要不同数量的资源,具体取决于 RootSync 或 RepoSync 的配置。某些配置需要的资源比其他配置多。 如果协调器无法调度,则可能是因为请求的资源多于节点上的可用资源。 如果您使用的是 Standard 模式 GKE 集群,则协调器资源请求会设置得非常低。选择此设置是为了允许进行调度(即使这会导致节流和性能下降),以便 Config Sync 可在小型集群和小型节点上运行。但是,在 GKE Autopilot 集群上,协调器请求设置得较高,以更实际地表示同步时的使用情况。 临时解决方法: 启用了节点自动预配的 GKE Autopilot 或 GKE Standard 应该能够查看请求了多少资源,并创建适当大小的节点以允许进行调度。但是,如果您要手动配置节点或节点实例大小,则可能需要调整这些设置以满足协调器 Pod 资源要求。 |
|
指标 | 1.15.0 |
导出失败。权限遭拒默认情况下,当 reconciler-manager 检测到应用默认凭证时,otel-collector 会配置为将指标导出到 Prometheus、Cloud Monitoring 和 Monarch。 临时解决方法: 如果您尚未配置 Cloud Monitoring 或自定义指标过滤条件和 Cloud Monarch, |
|
指标 | 1.15.0 |
otel-collector 因自定义配置崩溃如果您尝试修改或删除其中一个默认 ConfigMap( 临时解决方法: 如需自定义指标导出配置,请在 |
|
纠正 |
Config Sync 正在与自己争夺Config Sync 可能看起来正在进行控制器争夺(与自身)。如果您在 Git 代码库中为资源的可选字段设置默认值,则会出现此问题。例如,如果为 RoleBinding 主体设置 临时解决方法: 从资源声明中移除该字段。 |
||
纠正 |
Config Sync 正在与 Config Connector 资源争夺Config Sync 可能看起来正在与 Config Connector 争夺资源,例如 StorageBucket。如果您未在可信来源中为资源 临时解决方法:
您可以通过在资源声明中添加 |
||
可信来源 | 1.13.0 | 1.20.1 |
已修复:无法为 OCI 源生成访问令牌如果 Config Sync 配置为使用 OCI 作为可靠来源并使用 Workload Identity Federation for GKE 进行身份验证,则 Config Sync 在尝试向容器注册表进行身份验证时可能会偶尔遇到临时 此问题是由 oauth2 库仅在身份验证令牌过期后才刷新该令牌而导致的。 错误消息可能包含以下文本: 临时解决方法: 当 Config Sync 下次尝试从可信来源提取数据时,该错误应会自动解决。 当 Config Sync 多次出错时,重试的频率会降低。如需强制 Config Sync 更快重试,请删除协调器 Pod。此操作会使 Config Sync 重新创建协调器 Pod 并立即从可靠来源提取数据: kubectl delete pod -n config-management-system RECONCILER_NAME RECONCILER_NAME 替换为 RootSync 或 RepoSync 对象的协调器名称。
|
可信来源 | 1.20.0 | 1.21.3 |
在 Git 锁定文件成为孤立文件后,
|
可信来源 | 1.19.0 | 1.20.0 |
已修复:残存 Git 锁定文件如果您在 KNV2004: error in the git-sync container: ... fatal: Unable to create '/repo/source/.git/shallow.lock': File exists. ... 临时解决方法: 如需解决此问题,请重启受影响的协调器 Pod,以便为其提供新的临时卷: kubectl delete pod -n config-management-system RECONCILER_NAME RECONCILER_NAME 替换为 RootSync 或 RepoSync 对象的协调器名称。
|
正在同步 | 1.7.0 | 1.21.0 |
已修复:忽略不遵循的变更注解Config Sync 协调器中的 bug 导致即使存在 临时解决方法: 您可以通过添加 |
正在同步 | 1.5.0 | 1.20.1 |
已修复:API 发现错误可能会导致托管式对象被错误地标记为
|
正在同步 | 1.15.0 |
审核日志中存在大量无效的
|
|
私有注册表 | 1.19.0 |
Config Sync 不为协调器 Deployment 使用私有注册表在配置了私有注册表后,Config Sync 应替换所有 Deployment 的映像。但是,Config Sync 不会替换协调器 Deployment 中的映像的映像注册表。 临时解决方法: 此问题的解决方法是配置 containerd 中的映像注册表镜像。 |
|
正在同步 | 1.7.0 | 1.21.0 |
已修复:未能将更新后的清单写入集群如果 Config Sync 无法更新 ResourceGroup 对象的状态,您可能会在协调器日志中遇到类似如下的间歇性错误: KNV2009: task failed (action: "Inventory", name: "inventory-set-0"): failed to write updated inventory to cluster: Operation cannot be fulfilled on resourcegroups.kpt.dev "root-sync": the object has been modified; please apply your changes to the latest version and try again 此错误是由于协调器和 ResourceGroup 控制器之间存在竞态条件导致的。ResourceGroup 控制器可能会在协调器更新 ResourceGroup 规范之前更新 ResourceGroup 状态,从而导致 临时解决方法: 此问题没有临时解决方法。此错误应会自动解决。 |
Terraform | Terraform 5.41.0 版 |
无法使用 Terraform 安装或升级 Config SyncTerraform 5.41.0 版为 临时解决方法:
|
|
Google Cloud 控制台 |
Google Cloud 控制台中的 Config Sync 信息中心出现“缺少数据”错误您可能会在 Google Cloud 控制台中的信息中心上看到有关 Config Sync 集群的错误,例如“缺少数据”或“集群凭证无效”。如果您未登录 GDC (VMware) 或 GDC(裸金属)集群,可能会出现此问题。 临时解决方法: 如果您在 Google Cloud 控制台中看到有关 GDC (VMware) 或 GDC(裸金属)集群的错误类型,请确保您已使用 GKE Identity Service 或 Connect Gateway 登录集群。 |
||
正在同步 | 1.21.0 |
已修复:Config Sync 阻止更新已废弃的资源在 1.21.0 之前的版本中,已删除的 RootSync 或 RepoSync 对象可能会遗留多个标签和注解,Config Sync 会使用这些标签和注解来跟踪这些资源对象。 在删除 RootSync 或 RepoSync 对象后,这些标签和注释可能会导致以下副作用:
|
|
nomos 命令行工具 | 1.17.0 |
nomos CLI 不支持
|
后续步骤
如果您在文档中找不到问题的解决方案,请参阅获取支持以获取进一步的帮助,包括以下主题的建议:
- 请与 Cloud Customer Care 联系,以提交支持请求。
- 通过在 StackOverflow 上提问,从社区获取支持。如果您使用 kpt 或 Kustomize,请使用
kpt
或kustomize
标记来搜索类似问题。 - 使用 GitHub 上的公开问题跟踪器提交 bug 或功能请求。