简体   繁体   English

如何在 kubernetes 中创建多个 nginx 入口控制器

[英]How can i create mutiple nginx ingress controller in kubernetes

I have 2 namespaces in my kubernetes cluster, one called first-nginx and the other called second-nginx .我的 kubernetes 集群中有 2 个命名空间,一个称为first-nginx ,另一个称为second-nginx I am using the chart ingress-nginx .. NOT the stable/nginx-ingress as that is now deprecated.我正在使用图表ingress-nginx ..不是stable/nginx-ingress因为现在已弃用。

I am attemtping to install multiple nginx controllers, because i need them to be exposed by an already created static ip in GKE.我正在尝试安装多个 nginx 控制器,因为我需要通过 GKE 中已经创建的静态 ip 公开它们。 I have successfully installed my first chart in the first-nginx namespace like this我已经像这样在 first-nginx 命名空间中成功安装了我的第一个图表

helm install nginx-ingress ingress-nginx/ingress-nginx --namespace first-nginx --set ingress-class="nginx-devices --set controller.service.loadBalancerIP={first-IP-address}"

I am now attempting to do the same with in the second namespace like this我现在试图在第二个命名空间中做同样的事情

helm install nginx-ingress-2 ingress-nginx/ingress-nginx --namespace second-nginx --set ingress-class="nginx-devices --set controller.service.loadBalancerIP={second-IP-address}"

However i get an error as shown below.但是我收到如下所示的错误。

Error: rendered manifests contain a resource that already exists.错误:呈现的清单包含已存在的资源。 Unable to continue with install: IngressClass "nginx" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata;无法继续安装:名称空间“”中的 IngressClass“nginx”存在且无法导入当前版本:所有权元数据无效; annotation validation error: key "meta.helm.sh/release-name" must equal "nginx-ingress-2": current value is "nginx-ingress";注释验证错误:键“meta.helm.sh/release-name”必须等于“nginx-ingress-2”:当前值为“nginx-ingress”; annotation validation error: key "meta.helm.sh/release-namespace" must equal "second-nginx": current value is "first-nginx"注释验证错误:键“meta.helm.sh/release-namespace”必须等于“second-nginx”:当前值为“first-nginx”

How do i solve this ?我如何解决这个问题? This seems to work when i use the stable/nginx-ingress chart where i can do something like this helm install nginx-ingress-devices stable/nginx-ingress --namespace second-nginx --set controller.ingressClass="nginx-devices"当我使用 stable/nginx-ingress 图表时,这似乎有效,在那里我可以执行以下操作helm install nginx-ingress-devices stable/nginx-ingress --namespace second-nginx --set controller.ingressClass="nginx-devices"

How do i acheive the same thing with the ingress-nginx我如何使用ingress-nginx 实现同样的目标

您应该使用controller.ingressClassResource.name为它们设置不同的入口类名称

You need to define additional controller.ingressClassResource.controllerValue for the second ingress-nginx, so that when an ingress resource refer to this class, it knows which controller to engage.您需要为第二个 ingress-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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何创建将流量转发到 kube.netes ingress controller 的反向代理,例如 haproxy ingress 或 nginx ingress - How to create reverse proxy that forward traffic to kubernetes ingress controller such as haproxy ingress or nginx ingress 使用 Azure 在 Kubernetes 中创建 NGINX 入口控制器 - Create an NGINX ingress controller in Kubernetes, using Azure kubernetes nginx 入口控制器重写 - kubernetes nginx ingress controller rewrites Kubernetes Nginx NodePort 上的入口 Controller - Kubernetes Nginx Ingress Controller on NodePort kubernetes nginx 入口控制器错误 - kubernetes nginx ingress controller error Kibana与Kubernetes中的nginx入口控制器 - Kibana with nginx ingress controller in Kubernetes 如何为Kubernetes集群部署入口控制器 - How can I deploy an ingress controller for my Kubernetes cluster Ingress资源与Kubernetes上的NGINX入口控制器 - Ingress resource vs NGINX ingress controller on Kubernetes can I use nginx ingress controller oauth2_proxy in kubernetes with azure active directory without cookies - can I use nginx ingress controller oauth2_proxy in kubernetes with azure active directory without cookies 无法在Kubernetes中使用Nginx入口控制器 - Can't get nginx ingress controller working in Kubernetes
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM