GCP无法禁用krmapihosting等API及已删除K8s集群自动重建问题
GCP Kubernetes API无法禁用、集群自动重建问题处理方案
核心诉求:禁用krmapihosting.googleapis.com或container.googleapis.com服务
已记录的异常现象
- GCP控制台删除Kubernetes集群后,集群持续自动重建
- 控制台操作禁用Kubernetes相关API时返回未知错误,操作无法完成
- 执行CLI命令
gcloud services disable krmapihosting.googleapis.com --force禁用服务时报错,报错参考:CLI禁用服务报错截图 - 已完成基础资源排查:Compute Engine、Kubernetes服务下无任何运行中资源
根因排查与处理方案
- 自动化配置/关联资源残留
Terraform、Deployment Manager、Config Connector等基础设施即代码工具会将已声明的集群标记为期望运行状态,检测到集群被删除后会自动触发重建逻辑。Anthos附属集群、跨项目挂载的GKE资源不会展示在当前项目的常规Kubernetes资源列表中,会直接导致API禁用时的资源校验不通过。
排查操作:- 执行
gcloud container clusters list --location=-遍历所有区域、可用区的标准GKE集群,确认无遗漏资源 - 执行
gcloud anthos attached clusters list --location=-排查全区域Anthos附属集群残留 - 检查所有关联的自动化运维平台、IaC工具状态,确认不存在声明式管理当前项目GKE集群的配置
- 执行
- 组织策略强制限制
若项目归属GCP组织目录,组织/文件夹层级的服务使用策略可能强制要求GKE相关API保持开启,部分合规类策略还会自动创建符合规则的GKE集群,直接导致手动删集群后重建、API禁用失败。
排查操作:进入组织策略控制台,检查constraints/serviceusage.allowedDisabledServices、constraints/serviceusage.enableService两条策略规则,确认当前项目未被绑定强制启用container.googleapis.com、krmapihosting.googleapis.com的策略。 - 服务禁用顺序错误
krmapihosting.googleapis.com是GKE控制平面的附属依赖服务,依赖container.googleapis.com运行,直接单独禁用该服务会触发依赖校验报错。
正确操作流程:确认无资源残留后,使用持有roles/serviceusage.serviceUsageAdmin及以上权限的账号,按依赖顺序执行以下命令:# 先禁用核心container服务 gcloud services disable container.googleapis.com --force # 再禁用krmapihosting附属服务 gcloud services disable krmapihosting.googleapis.com --force - 服务端状态同步异常
以上排查全部完成仍报错的,属于GCP后端存在未同步的残留资源锁,普通用户权限无法通过控制台、CLI清理,直接提交GCP技术支持工单,说明已完成全量资源排查、附上操作报错凭证,要求后台强制清理残留资源状态即可。
内容的提问来源于stack exchange,提问作者Jbertrand
相关产品推荐
相关产品推荐

