AKS Multiple Nginx Ingress с внутренним LB
Azure Kubernetes — AKS — версия K8s — 1.20.9.
Попытка настроить множественный вход nginx с помощью внутреннего LB.
входной контроллер с входным классом -
helm install test1 ingress-nginx/ingress-nginx \
--set controller.replicaCount=1 \
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux \
--set controller.ingressClassResource.name=test1 \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"=true
после установки служб LB и класса Ingress созданы.
услуга -
test1-ingress-nginx-controller LoadBalancer 10.0.52.125 10.240.0.4 80:32472/TCP,443:30586/TCP 4h9m
test1-ingress-nginx-controller-admission ClusterIP 10.0.32.211 <none> 443/TCP 4h9m
ИнгрессКласс —
NAME CONTROLLER PARAMETERS AGE
test1 k8s.io/test1 <none> 155m
Входной файл
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-world-ingress-my-external
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: test1
rules:
- host: test1.com
http:
paths:
- backend:
serviceName: aks-helloworld
servicePort: 80
path: /app(.*)
- backend:
serviceName: ingress-demo
servicePort: 80
path: /hello-world-two(/|$)(.*)
Ингресс-2
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-world-ingress-my-external
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: test2
rules:
- host: test2.com
http:
paths:
- backend:
serviceName: helloworld
servicePort: 80
path: /app(.*)
- backend:
serviceName: demo
servicePort: 80
path: /hello(/|$)(.*)
после создания входа отображается только первый IP
NAME CLASS HOSTS ADDRESS PORTS AGE
external-ingress test1 test4.com 10.0.240.6 80 67m
hello-world-ingress-my-external test2 test3.com 10.0.240.6 80 104
Трафик не обновляется на основе IngressClass. пожалуйста, помогите, почему один и тот же IP-адрес для всех входов? также, как можно обслуживать трафик на основе входного класса?
Заранее спасибо.
ОБНОВЛЕНИЕ . После обновления я могу управлять множественным входным трафиком.
--set controller.ingressClass=test \
--set controller.ingressClassResource.name=test --set controller.ingressClassResource.controllerValue="k8s.io/test-controller"
последняя команда рулевого управления
helm install test1 ingress-nginx/ingress-nginx --set controller.ingressClass=test1 --set controller.ingressClassResource.name=test1 --set controller.ingressClassResource.controllerValue="k8s.io/test1-controller" \
--set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-internal"=true
Все еще Ingress не показывает IP
NAME CLASS HOSTS ADDRESS PORTS AGE
external-ingress test1 test3.com 80 19m
hello-world-ingress-my-external test2 test1.com 80 33m