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

GKE环境下无法新增部署多个ingress-nginx实例该如何解决?

报错根因

IngressClass是Kubernetes的集群级资源,默认配置下ingress-nginx的官方helm chart安装时会自动创建名为nginx的IngressClass,该资源的所有权归属于第一个安装的helm release(即你环境中的ingress-nginx-01)。第二个实例安装时会尝试创建同名的IngressClass,触发所有权校验失败,就是你收到的报错。

解决方案

多实例部署推荐使用每个实例对应独立IngressClass的方案,逻辑隔离清晰,不会出现规则冲突。安装第二个实例时指定自定义IngressClass参数即可,命令如下:

helm install ingress-nginx-02 ingress-nginx/ingress-nginx \
  --set controller.ingressClass.name=nginx-02 \
  --set controller.ingressClassController=k8s.io/ingress-nginx-02

参数说明:

  • controller.ingressClass.name:自定义新实例对应的IngressClass名称,不能和已有的nginx重名
  • controller.ingressClassController:自定义控制器的识别标识,只有Ingress资源的ingressClassName字段等于上方设置的IngressClass名称,或是Ingress注解kubernetes.io/ingress.class等于该值的规则,才会被当前实例处理。

如果需要部署更多实例,只需将命令中的nginx-02、ingress-nginx-02替换为对应序号即可。

可选方案(不推荐)

如果你需要多个实例共用已有的nginx IngressClass,可以安装时关闭IngressClass的创建:

helm install ingress-nginx-02 ingress-nginx/ingress-nginx \
  --set controller.ingressClass.create=false

注意:该方案下所有匹配nginx IngressClass的规则会被所有实例同时加载,容易出现流量调度异常,非特殊场景不建议使用。

验证方法

安装完成后执行如下命令,能看到多个独立的IngressClass资源即部署成功:

kubectl get ingressclass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:15:01