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

在AKS集群通过Helm部署nginx-ingress遭遇RBAC权限问题求助

解决AKS中Helm部署nginx-ingress的RBAC权限错误

你遇到的问题核心是禁用了RBAC资源自动创建,但AKS集群默认启用RBAC机制,导致nginx-ingress控制器缺少必要的集群权限来操作资源。下面我帮你拆解问题并给出具体解决方案:

错误原因分析

你在Helm命令里设置了--set rbac.create=false,这会让Helm跳过创建nginx-ingress运行必需的ClusterRole和ClusterRoleBinding资源。而AKS默认开启RBAC,kube-system命名空间下的default服务账号并没有控制器需要的权限(比如访问nodes、ingresses、services等资源),所以部署时触发了权限禁止的错误。

解决方案

方案1:让Helm自动创建RBAC资源(推荐)

既然AKS默认启用RBAC,直接去掉rbac.create=false参数,让Helm自动生成所需的RBAC规则,这是最简洁且符合最佳实践的方式:

# Helm 3需要先添加stable仓库(如果还没添加)
helm repo add stable https://charts.helm.sh/stable
helm repo update

# 部署nginx-ingress,由Helm自动管理RBAC资源
helm install nginx-ingress stable/nginx-ingress -n nginx-ingress --namespace kube-system

方案2:手动创建RBAC资源(若必须禁用Helm的RBAC自动创建)

如果你坚持要禁用Helm的RBAC自动创建,可以手动配置所需的权限规则:

  1. 创建ClusterRole配置文件(命名为nginx-ingress-clusterrole.yaml):
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: nginx-ingress
rules:
- apiGroups: [""]
  resources: ["configmaps", "endpoints", "nodes", "pods", "secrets", "services"]
  verbs: ["list", "watch", "get"]
- apiGroups: [""]
  resources: ["services"]
  verbs: ["update"]
- apiGroups: [""]
  resources: ["events"]
  verbs: ["create", "patch"]
- apiGroups: ["extensions"]
  resources: ["ingresses"]
  verbs: ["get", "list", "watch"]
- apiGroups: ["extensions"]
  resources: ["ingresses/status"]
  verbs: ["update"]
  1. 创建ClusterRoleBinding配置文件(命名为nginx-ingress-clusterrolebinding.yaml),将权限绑定到kube-system的default服务账号:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: nginx-ingress
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: nginx-ingress
subjects:
- kind: ServiceAccount
  name: default
  namespace: kube-system
  1. 应用上述配置:
kubectl apply -f nginx-ingress-clusterrole.yaml
kubectl apply -f nginx-ingress-clusterrolebinding.yaml
  1. 再次执行你的Helm部署命令:
helm install stable/nginx-ingress -n nginx-ingress --namespace kube-system --set rbac.create=false

额外提示

AKS集群默认启用RBAC,方案1能让Helm帮你管理RBAC资源的生命周期,避免手动配置可能出现的权限遗漏或版本不匹配问题,更适合新手使用。

内容的提问来源于stack exchange,提问作者Fabio Henrique Gabriele

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:34:41