You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Kubernetes Cluster-AutoScaler时遇权限禁止错误求助

Cluster Autoscaler权限不足错误的原因与解决方案

错误原因

日志中的所有报错都指向同一个问题:kube-system命名空间下的cluster-autoscaler服务账号缺少集群级别的资源访问权限,具体无法执行list和watch操作的资源包括:

  • csidrivers.storage.k8s.io(storage.k8s.io API组)
  • csistoragecapacities.storage.k8s.io(storage.k8s.io API组)
  • namespaces(核心API组)

Cluster Autoscaler需要这些权限监听集群资源状态,才能做出正确的扩缩容决策。

解决方案

通过RBAC配置为该服务账号添加所需权限,步骤如下:

  1. 创建自定义ClusterRole,包含所需资源的访问权限
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: cluster-autoscaler-custom
rules:
- apiGroups: ["storage.k8s.io"]
  resources: ["csidrivers", "csistoragecapacities"]
  verbs: ["list", "watch"]
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["list", "watch"]

执行命令应用配置:

kubectl apply -f cluster-autoscaler-custom-role.yaml
  1. 将ClusterRole绑定到cluster-autoscaler服务账号
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: cluster-autoscaler-custom-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-autoscaler-custom
subjects:
- kind: ServiceAccount
  name: cluster-autoscaler
  namespace: kube-system

执行命令应用配置:

kubectl apply -f cluster-autoscaler-custom-binding.yaml
  1. 重启Cluster Autoscaler Pod,让新权限生效
kubectl rollout restart deployment cluster-autoscaler -n kube-system

补充说明

如果你的Cluster Autoscaler是通过官方部署文件安装的,也可以直接检查并修改官方提供的cluster-autoscaler ClusterRole,在其rules中添加上述资源的权限,无需创建自定义角色。

内容的提问来源于stack exchange,提问作者Steve Spiteri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:50:26