本文介绍控制台访问集群异常问题的问题现象、问题原因和解决方案。例如,当前集群APIServer请求异常,访问容器组日志时报错API Server请求异常,当前账号未被授予该操作所需的集群RBAC权限,当前账号未被授予该操作所需的RAM权限。
当前集群API Server请求异常ErrorQueryClusterNamespace
或APIServer.500
问题现象
当您在控制台访问集群资源时,出现报错“当前集群APIServer请求异常”,错误码:ErrorQueryClusterNamespace
或APIServer.500
。
问题原因
由API Server负载均衡配置或者状态异常导致容器服务管控与集群API Server之间连接失败。
解决方案
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面中,单击目标集群。
在集群管理页,单击基本信息页签,然后单击API Server 负载均衡(SLB)后面的链接,跳转到负载均衡管理控制台。
如果界面提示负载均衡ID不存在,则说明APIServer的负载均衡实例被删除或释放。集群不可恢复,您需要重新创建集群。详细信息,请参见创建ACK托管集群。
否则,继续执行下一步。
查看该负载均衡实例的状态是否为运行中。
如果否,检查实例是否处于欠费停止(按量付费实例)或到期锁定状态(包年包月实例)。请先完成续费,然后重新启用实例。关于负载均衡的欠费说明,请参见欠费说明。
如果是,继续执行下一步。
查看该负载均衡实例的监听,确认前端和后端是否均存在TCP:6443的监听,且运行状态是否为运行中。
查看上述监听的健康检查状态是否为正常。
如果否,则说明APIServer的负载均衡后端异常。
对于托管版集群,请提交工单咨询。
对于专有版集群,请参考如下内容排查。如问题仍未解决,请提交工单处理。
在容器服务管理控制台的集群详情页面,单击集群资源页签。单击Master实例后面的链接,跳转至ECS管理控制台,检查ECS实例是否处于运行中状态。
说明请对所有Master实例均做此检查。
通过ECS管理控制台远程登录Master节点,查看APIServer容器是否正常运行。
登录Master节点,请参见ECS远程连接方式概述。
登录Master节点后,可以通过以下方式检查APIServer容器的运行状态。
对于使用Docker运行时的集群,执行
docker ps | grep kube-apiserver
命令,根据命令的输出,使用docker inspect
命令检查容器状态。对于使用Containerd运行时的集群,执行
crictl ps | grep kube-apiserver
命令,根据命令的输出,使用crictl inspect
命令检查容器状态。
如果是,继续执行下一步。
查看上述监听是否启用了访问控制。
如果是,则说明APIServer的负载均衡监听访问控制白名单未正确配置。在访问控制策略中将地址段
100.104.0.0/16
添加到白名单,该地址段为ACK管控内部访问APIServer的请求来源地址段。有关访问控制的详细信息,请参见访问控制。如果否,继续执行下一步。
若以上均不符合,请提交工单咨询。
访问容器组日志时报错API Server请求异常
当前账号未被授予该操作所需的集群RBAC权限ForbiddenQueryClusterNamespace
或APISERVER.403
问题现象
当您访问控制台时,出现报错“当前账号未被授予该操作所需的集群RBAC权限”,错误码:ForbiddenQueryClusterNamespace
或APISERVER.403
。
问题原因
您使用的账号未被授予当前操作所需的集群RBAC权限。
解决方案
使用阿里云账号或者具有管理员权限的账号登录容器服务管理控制台,在左侧导航栏中选择授权管理。
在RAM用户页签查找出现报错的用户名,单击用户名右侧的管理权限。
在权限管理页面,单击添加权限,选择对应集群、命名空间和权限管理,单击提交授权。
当前账号未被授予该操作所需的RAM权限StatusForbidden
问题现象
当您访问控制台时,出现报错“当前账号未被授予该操作所需的RAM权限”,错误码:StatusForbidden
。
问题原因
您使用的账号未被授予当前操作所需的RAM权限。
解决方案
使用阿里云账号或者具有RAM权限的账号登录RAM管理控制台。
根据错误提示页面的CS信息为您的账号添加相应的授权,例如cs:DescribeKubernetesVersionMetadata。详细操作,请参见使用RAM授予集群及云资源访问权限。