Из того, что вы упомянули в комментариях, я почти уверен, что проблему можно решить с помощью переписывания пути.
Теперь, когда вы отправляете запрос на /svc1/
с помощью path: /svc1/
, запрос пересылается на app1-svc
с путем, установленным в /svc1/
, и вы получаете 404 ошибки, поскольку в app1 такого пути нет. Из того, что вы упомянули, вы, скорее всего, можете решить проблему с помощью переписать. Вы можете добиться этого, используя аннотацию nginx.ingress.kubernetes.io/rewrite-target
, поэтому ваш вход будет выглядеть следующим образом:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress
namespace: mynamespace
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- path: /svc1(/|$)(.*)
backend:
serviceName: app1-svc
servicePort: 3000
- path: /svc2(/|$)(.*)
backend:
serviceName: app2-svc
servicePort: 8080
В этом случае при отправке запроса с путем, установленным в /svc1/something
, запрос будет перенаправлен в app1 с переписанным путем на /something
.
Также посмотрите в входные документы для более подробного объяснения .
Дайте мне знать, если это решило вашу проблему.