更新时间:2024-07-02 GMT+08:00
命名空间因APIService对象访问失败无法删除
问题现象
删除命名空间时,命名空间一直处“删除中”状态,无法删除。查看命名空间yaml配置,status中有报错“DiscoveryFailed”,示例如下:
上图中报错信息为:Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request
表示当前删除命名空间动作阻塞在kube-apiserver访问metrics.k8s.io/v1beta1接口的APIService资源对象。
问题根因
当集群中存在APIService对象时,删除命名空间会先访问APIService对象,若APIService资源无法正常访问,会阻塞命名空间删除。除用户创建的APIService对象资源外,CCE集群部分插件也会自动创建APIService资源,如metrics-server、prometheus插件。
APIService使用介绍请参考:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/
解决方法
可以采用如下两种方法解决:
- 修复报错信息中的APIService对象,使其能够正常访问,如果是插件中的APIService,请确保插件的Pod正常运行。
- 删除报错信息中的APIService对象,如果是插件中的APIService,可从页面卸载该插件。