【发布时间】:2021-03-09 20:46:55
【问题描述】:
这个https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/ 说:
当运行多个 ingress-nginx 控制器时,它只会处理一个未设置的类 如果其中一个控制器使用默认的 --ingress-class 值,则注释
- 这个类注释集在哪里,它是如何工作的?
- 什么是默认的 --ingress-class 值?
【问题讨论】:
这个https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/ 说:
当运行多个 ingress-nginx 控制器时,它只会处理一个未设置的类 如果其中一个控制器使用默认的 --ingress-class 值,则注释
【问题讨论】:
1.这个类注释集在哪里,它是如何工作的?
ingress class 注释是在定义入口对象时设置的。这一概念为您提供了一种多控制器共存的方式,而不是试图竞相满足一个特定的入口对象。
2。什么是默认的 --ingress-class 值?
NGINX Ingress Controller 的默认 Ingress 类是nginx,这意味着它只处理class 设置为nginx 的配置资源。您可以通过-ingress-class 命令行参数自定义类。
所以为了有不同的入口类,如下例所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-world
annotations:
kubernetes.io/ingress.class: "nginx-controller-1"
spec:
rules:
- http:
paths:
- backend:
serviceName: hello-world
servicePort: 8080
您需要为 nginx 控制器定义相同的类,以满足该入口:
spec:
template:
spec:
containers:
- name: nginx-ingress-internal-controller
args:
- /nginx-ingress-controller
- '--ingress-class=nginx-controller-1'
- '--configmap=ingress/nginx-ingress-internal-controller'
【讨论】: