第二次部署Ingress-Nginx Helm Chart遇冲突,求解决方案
解决重复部署ingress-nginx Helm Chart的冲突问题
冲突原因
两次部署的ingress-nginx Chart默认会创建全局唯一的IngressClass资源nginx,第一个部署的nginx-ingress-private已占用该名称,导致第二个部署无法重复创建,触发所有权元数据冲突。
解决方案
通过自定义第二个Ingress控制器的IngressClass名称,避免资源重复:
方式1:安装命令直接指定参数
执行安装时添加参数,为公开服务的Ingress控制器指定独特的IngressClass名称:
helm -n ingress-nginx-public install ingress-nginx-public ingress-nginx/ingress-nginx \ --set controller.ingressClass.name=nginx-public \ --set controller.ingressClassResource.name=nginx-public
controller.ingressClass.name:设置Ingress控制器关联的IngressClass标识controller.ingressClassResource.name:定义要创建的IngressClass资源的名称
方式2:通过values.yaml配置
如果需要更多自定义项,创建values-public.yaml文件:
controller: ingressClass: name: nginx-public ingressClassResource: name: nginx-public
然后执行安装:
helm -n ingress-nginx-public install ingress-nginx-public ingress-nginx/ingress-nginx -f values-public.yaml
后续使用说明
创建Ingress资源时,需明确指定对应的IngressClass:
- 公开服务的Ingress配置添加:
ingressClassName: nginx-public - 私有服务的Ingress保持使用原IngressClass(默认是
nginx)
内容的提问来源于stack exchange,提问作者GI D
相关产品推荐
相关产品推荐

