У меня есть кластер EKS, и в настоящее время я использую маршрутную маршрутизацию. Ранее я публиковал эту тему, поэтому все мои настройки находятся там: Kubernetes: 502 (Bad Getaway)
Отсюда мой входной контроллер: https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.24.1/deploy/mandatory.yaml
Вот мой вход:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: simple-fanout-example
namespace : default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: domain.com
http:
paths:
- path: /bleble(/|$)(.*)
backend:
serviceName: bleble-svc
servicePort: 8080
- path: /hello-world
backend:
serviceName: hello-world-svc
servicePort: 8080
Это работает абсолютно нормально, пока вы не попытаетесь пойти куда-либо, кроме домена domain.com/bleble или domain.com/hello-world. Службы должны ссылаться друг на друга, а запрашиваемый URI - это просто domain.com, который, очевидно, не работает, поскольку служба находится по адресу domain.com/nameoftheservice.
.
2 проблемы:
- Имя сервиса - bleble, поэтому мы решили, что путь должен быть / bleble. Я увидел в этой документации (kubernetes.github.io/ingress-nginx/examples/rewrite), что добавление (/|$)(.*) позволит переписать. Мы хотим использовать url как domain.com/bleble/swagger или domain.com/bleble/clients, ... Но когда мы их набираем, это возвращает к тому, что было на / bleble
- Мне нужен bleble, чтобы получить информацию из hello-world. Прямо сейчас, вместо того, чтобы переходить от domain.com/bleble к domain.com/hello-world, он переходит от domain.com/bleble к domain.com. кажется, что он может вызывать только имя хоста, а не путь.
Я попытался сделать один входной ресурс, и у меня есть nginx.ingress.kubernetes.io/app-root : /bleble
, но, похоже, это не работает. Я также попробовал аннотацию nginx.ingress.kubernetes.io/rewrite-target: /coretest
Спасибо за помощь!