Если вы хотите развернуть несколько экземпляров Ingress-Nginx в кластере или развернуть несколько экземпляров в пространстве имен, вам необходимо установить дополнительные параметры запуска для входящего контроллера, чтобы избежать синхронизации IP-адреса состояния созданного входящего ресурса с пустым или ненормальным. поведение IP-адреса службы вытесняется и синхронизируется с другими экземплярами.
1. Настройте ключевые параметры запуска.
Если несколько экземпляров не находятся в одном пространстве имен, используйте следующую конфигурацию:
...
- args:
- /nginx-ingress-controller
- --controller-class=k8s.io/prod-internal # класс контроллера, должен быть уникальным
...
- --ingress-class=prod-internal # ingress добрый, должен быть уникальным
...
...
Если несколько экземпляров должны находиться в одном пространстве имен, используйте следующую конфигурацию:
...
- args:
- /nginx-ingress-controller
- --election-id=ingress-controller-leader-prod-internal # удостоверение личности выборов, должен быть уникальным
- --controller-class=k8s.io/prod-internal # класс контроллера, должен быть уникальным
...
- --ingress-class=prod-internal # ingress добрый, должен быть уникальным
...
...
2. Создайте ресурс ingressClass:
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: prod-internal
spec:
controller: k8s.io/prod-internal
3. Используйте поле ingressClass, чтобы указать соответствующий класс экземпляра при создании ресурса Ingress:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test
namespace: prod
spec:
ingressClassName: prod-internal
rules:
- host: "foo.bar.com"
http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: xwd-social
port:
number: 80
Вопросы, связанные со справкой:
https://github.com/kubernetes/ingress-nginx/issues/7890
https://github.com/kubernetes/ingress-nginx/issues/8215
Обратитесь к официальному документу:https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/