我的kubernetes集群中有两个名称空间,一个名为first-nginx,另一个名为second-nginx。我在用图表..。stable/nginx-ingress现在不推荐,而不是。
我正在计划安装多个nginx控制器,因为我需要它们被GKE中已经创建的静态ip公开。我已经成功地在第一个nginx命名空间中安装了第一个图表,如下所示
helm install nginx-ingress ingress-nginx/ingress-nginx --namespace first-nginx --set ingress-class="nginx-devices --set controller.service.loadBalancerIP={first-IP-address}"我现在尝试在第二个名称空间中做同样的事情,如下所示
helm install nginx-ingress-2 ingress-nginx/ingress-nginx --namespace second-nginx --set ingress-class="nginx-devices --set controller.service.loadBalancerIP={second-IP-address}"但是,我得到了一个错误,如下所示。
错误:呈现的清单包含已经存在的资源。无法继续安装:命名空间中的IngressClass "nginx“存在,无法导入当前发行版:无效的所有权元数据;注释验证错误:键”元数据"“helm.sh/release”必须等于“nginx-ingress 2”:当前值为"nginx-ingress";注释验证错误:键“mac.helm.sh/ validation命名空间”必须等于“第二-nginx”:当前值为"first-nginx“。
我该怎么解决这个问题?当我使用稳定/nginx-ingress图表时,这似乎是可行的,在这里我可以做类似于这个helm install nginx-ingress-devices stable/nginx-ingress --namespace second-nginx --set controller.ingressClass="nginx-devices"的事情。
如何在ingress-nginx中实现相同的功能?
发布于 2021-11-11 05:15:49
您需要为第二个入口-nginx定义额外的controller.ingressClassResource.controllerValue,这样当入口资源引用这个类时,它就知道要调用哪个控制器。
helm install nginx-ingress-devices ingress-nginx/ingress-nginx \
--namespace second-nginx \
--set controller.ingressClassResource.name=second-nginx \
--set controller.ingressClassResource.controllerValue="k8s.io/second-nginx" \
--set controller.ingressClassResource.enabled=true \
--set controller.ingressClassByName=true发布于 2021-11-10 23:51:51
您应该使用controller.ingressClassResource.name为它们设置不同的入口类名。
https://stackoverflow.com/questions/69920684
复制相似问题