安装多个 Nginx Ingress Controller

最近更新时间:2024-05-13 11:54:01

我的收藏

概述

如果您需要部署多个 Nginx Ingress Controller,即希望不同的 Ingress 规则使用不同的流量入口:



您可以为集群部署多个 Nginx Ingress Controler,不同的 Ingress 指定不同的 ingressClassName 来实现。
本文介绍安装多个 Nginx Ingress Controller 的配置方法。

配置方法

如果要安装多个 Nginx Ingress Controller,需要在 values.yaml 指定 ingressClassName (注意不要冲突):
controller:
ingressClassName: prod
ingressClassResource:
name: prod
controllerValue: k8s.io/ingress-prod
说明:
三个字段需同时改。
另外,多实例的 release 名称也不能与已安装的相同,即便是 namespace 不同,release 名称也不能相同(避免 ClusterRole 冲突),示例代码如下:
helm upgrade --install prod ingress-nginx/ingress-nginx \\
--namespace ingress-nginx --create-namespace \\
-f values.yaml
在创建 Ingress 资源时也要指定对应的 ingressClassName
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
spec:
ingressClassName: prod
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80i