#kubernetes #kubernetes-helm #kubernetes-ingress #azure-aks #kubernetes-pod
Вопрос:
Нужна помощь в настройке входа в K8S. Заранее спасибо.
Я настроил контроллер NGINX и Cert-менеджер в кластере AKS с помощью Helm.
Далее развернуты два модуля, и уважаемые службы вот эти имена, которые можно найти на прикрепленном выше изображении.
- pod/rpe-доставка-заказы-dcs-api*
- сервис/rpe-доставка-заказы-dcs-api
- pod/rpe-доставка-заказы-прокси-api*
- сервис/rpe-доставка-заказы-прокси-api
Далее — когда я попытаюсь настроить вход, как показано ниже, для двух вышеперечисленных служб.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rpe-delivers-orders-dcs-ingress
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: dcs-cluster-issuer
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /orders-dcs(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
- path: /orders-proxy(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
- path: /(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
- Работает так, как ожидалось — raag.westus2.cloudapp.azure.com
- Работая, как и ожидалось — raag.westus2.cloudapp.azure.com/rpe-delivers-orders-dcs-api
- Не работает — raag.westus2.cloudapp.azure.com/rpe-delivers-orders-proxy-api
Моя цель состоит в том, чтобы приведенные ниже URL-адреса были перенаправлены на две разные веб-страницы:
- raag.westus2.cloudapp.azure.com/rpe-delivers-orders-dcs-api
- raag.westus2.cloudapp.azure.com/rpe-delivers-orders-proxy-api
Пожалуйста, дайте мне знать, если я упустил какую — либо информацию или неправильно выполнил настройку.
Спасибо.
Ответ №1:
Похоже, что вам не хватает блока rpe-delivers-orders-proxy-api
в вашей входной конфигурации
- path: /(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
Если у вас есть какой-либо вариант и требование перезаписи пути, в этом случае вы можете создать два разных входа
№ 1. Вход для перезаписи
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-first
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: dcs-cluster-issuer
nginx.ingress.kubernetes.io/rewrite-target: /$1
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /orders-dcs(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
- path: /orders-proxy(/|$)(.*)
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
Нет 2. простой вход, который также будет там в соответствии с вашими требованиями
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-second
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
- path: /
backend:
service:
name: rpe-delivers-orders-dcs-api
port:
number: 80
Обновить :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-second
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- raag.westus2.cloudapp.azure.com
secretName: dcs-tls-secret
rules:
- host: raag.westus2.cloudapp.azure.com
http:
paths:
- path: /orders-proxy
pathType: Prefix
backend:
service:
name: rpe-delivers-orders-proxy-api
port:
number: 80
Комментарии:
1. проверьте журналы входящих контейнеров Nginx для отладки, когда вы выполняете запрос пути.
2. Привет, Харш — я пробовал и то, и другое, но все равно одно и то же. Вот моя новая настройка в соответствии с предложением. kubectl применить -f .rpe-доставляет-заказы-вход. yaml —пространство имен dcs-вход-nginx kubectl применяется -f .rpe-доставляет-заказы-базовый вход. yaml —dcs пространства имен-вход-nginx
3. Попробуйте удалить regrex,обновленный в ответе, также проверьте журналы контроллера nginx, есть ли какие-либо проблемы ?
4. я обновил второй вход, пожалуйста, проверьте один раз, а также проверьте журналы модуля входа nginx.
5. Я подтвердил правильность имен служб в базовом входном файле, а также удалил регулярное выражение из аннотаций. Но это все равно так же Сурово. Спасибо.