安装多个 Nginx Ingress Controller(可选)
如果你需要部署多个 Nginx Ingress Controller,即希望不同的 Ingress 规则可能使用不同的流量入口:
你可以为集群部署多个 Nginx Ingress Controler,不同的 Ingress 指定不同的 ingressClassName
来实现。
本文介绍安装多个 Nginx Ingress Controller 的配置方法。
配置方法
test
controller:
ingressClass: test
ingressClassResource:
name: test
controllerValue: k8s.io/test
prod
controller:
ingressClass: prod
ingressClassResource:
name: prod
controllerValue: k8s.io/prod
提示:
三个字段需同时改。
另外多实例的 release
名称也不能与已安装的相同,即便是 namespace
不同,release
名称也不能相同(避免 ClusterRole
冲突),示例:
# test
helm -n ingress-nginx upgrade --install test . -f values.yaml
# prod
helm -n ingress-nginx upgrade --install prod . -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: 80