Давайте рассмотрим, что у нас есть три среды:
test.website.com
dev.website.com
prod.website.com
КаждаяСреда состоит из следующих микросервисов: webapp, service1, service2.Я хочу иметь возможность легко вызывать все сервисы из JS-интерфейса, не имея дело с доменами.Было бы здорово, если бы я мог просто позвонить /services/service1/
, и тот факт, что я нахожусь в одном домене, оставил бы меня в той же среде.
Итак, давайте рассмотрим среду разработки:
dev.website.com/
-> идет в webapp dev.website.com/services/service1/
-> идет в service1 dev.website.com/services/service1/
...
Чтобы сделать это,Я настроил вход следующим образом:
- path: /services/service1/*
backend:
serviceName: service1
servicePort: 8080
- path: /services/service2/*
backend:
serviceName: service2
servicePort: 8080
- path: /*
backend:
serviceName: webapp
servicePort: 8080
Это будет прекрасно работать, но это не так.
- Первая проблема заключается в том, что
service1
получает полный путь (/services/service1
) вместо /
при вызове.Для этого я нашел это: ingress.kubernetes.io/rewrite-target: /
- Но я также убежден, что эта функция не реализована, что противоречиво и не имеет особого смысла. - Вторая проблема заключается в том, что порядок услуг незатем и вызов
/services/service1/
заканчивается webapp
.
Это даже хороший подход?Как лучше всего это сделать?
Редактировать :
В соответствии с предложениями я удалил *
из пути, который помог, но также удалил необходимую функциональность.Мне нужно иметь возможность использовать:
/en/
-> webapp
/services/service1/method1
-> service1
Это нене работает без *
в пути.