AWS EKS安装ebs-csi-driver遇权限及ServiceAccountNotFound问题求助
AWS EBS CSI Driver 安装问题解决方案
问题1:控制台安装时出现命名空间权限错误
原因
你使用的AWS管理员账号仅拥有AWS层面权限,但EKS控制台安装Add-on时,实际由集群内的eks:addon-manager用户执行Kubernetes资源操作,该用户默认没有patch命名空间的权限,因此触发报错。
解决步骤
- 检查当前
eks:addon-manager的权限绑定:kubectl describe clusterrolebinding eks:addon-manager -n kube-system - 创建自定义权限绑定,赋予该用户命名空间的patch权限:
- 新建
addon-manager-namespace-patch.yaml文件,内容如下:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: eks:addon-manager:namespace-patch rules: - apiGroups: [""] resources: ["namespaces"] verbs: ["patch", "get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks:addon-manager:namespace-patch roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: eks:addon-manager:namespace-patch subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: eks:addon-manager - 应用该配置:
kubectl apply -f addon-manager-namespace-patch.yaml
- 新建
- 重新在AWS控制台尝试安装EBS CSI Driver Add-on。
问题2:创建IAM角色时提示ServiceAccount未找到
原因
官方文档的正确流程是先部署EBS CSI Driver的基础Kubernetes资源(包括ebs-csi-controller-sa服务账号),再创建IAM角色并关联。你可能跳过了资源部署步骤,直接执行IAM角色关联操作,导致找不到目标ServiceAccount。
解决步骤
- 先手动创建
ebs-csi-controller-sa:- 新建
csi-controller-sa.yaml文件,内容如下:apiVersion: v1 kind: ServiceAccount metadata: name: ebs-csi-controller-sa namespace: kube-system - 应用该配置:
kubectl apply -f csi-controller-sa.yaml
- 新建
- 确认ServiceAccount已创建:
kubectl get serviceaccount ebs-csi-controller-sa -n kube-system - 完成后再按照官方文档步骤创建IAM角色,并通过EKS OIDC提供商将角色与该ServiceAccount关联。
注意:如果是通过EKS Add-on方式安装驱动,解决第一个权限问题成功安装后,
ebs-csi-controller-sa会自动创建,无需手动部署。
内容的提问来源于stack exchange,提问作者Cuong Giap
相关产品推荐
相关产品推荐

