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

同一AKS集群安装多个nginx ingress controller实例报错如何解决

同一AKS集群安装多实例Nginx Ingress Controller的正确方案

错误原因

你遇到的报错是因为ingress-nginx官方Helm Chart默认会创建名称为nginx的全局IngressClass集群资源,两次安装时未修改该资源的默认名称,导致重复创建冲突。

正确安装步骤

所有实例安装时都需要额外指定3个核心参数,保证IngressClass相关配置全局唯一:

  • controller.ingressClass:controller监听的IngressClass名称
  • controller.ingressClassResource.name:实际创建的IngressClass资源名称,需和上面的参数值保持一致
  • controller.ingressClassResource.controllerValue:controller的唯一标识,用于区分不同实例,避免多实例争抢Ingress规则

安装第一个实例

helm install ingress1 ingress-nginx/ingress-nginx \
  --namespace namespace1 \
  --create-namespace \
  --set controller.ingressClass=class1 \
  --set controller.ingressClassResource.name=class1 \
  --set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx-class1"

安装第二个实例

helm install ingress2 ingress-nginx/ingress-nginx \
  --namespace namespace2 \
  --create-namespace \
  --set controller.ingressClass=class2 \
  --set controller.ingressClassResource.name=class2 \
  --set controller.ingressClassResource.controllerValue="k8s.io/ingress-nginx-class2"

验证与使用

安装完成后执行kubectl get ingressclass,可看到class1、class2两个独立的IngressClass资源。后续创建Ingress时,在资源配置中指定spec.ingressClassName为对应的值,即可被对应实例处理。

如果之前已经安装了第一个实例不想重新部署,可手动修改名称为nginx的IngressClass资源名称为class1,并同步调整对应的controller配置匹配即可。

内容的提问来源于stack exchange,提问作者Franco Tiveron

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:57:03