[英]How to map multiple services to a single ingress using AWS ALB as Ingress Controller?
我有一個入口(例如www.a.com )。 我已將根映射到服務,如下所示:
- backend:
serviceName: ui-svc
servicePort: 80
path: /
當 go 到www.a.com時,這將路由到正確的服務。 我想在 /api 上安裝另一個服務,如下所示:
- backend:
serviceName: api-svc
servicePort: 80
path: /api
到www.a.com/api的路由工作正常,但是任何尾隨端點都會得到 404(等等www.a.com/api/swagger ,即使這個端點安裝在應用程序本身(spring 應用程序)中)。 以前,使用 Traefik,我使用rewriteTarget: /
注釋來解決這個問題,但是 ALB 不支持這個。 有沒有可以解決這個問題的 kubernetes 原生方式?
我使用 kubernetes 1.17 和 EKS 作為我的 kubernetes 平台。
您可以使用正則表達式來匹配路徑
- backend:
serviceName: api-svc
servicePort: 80
path: /api/.*
這可以通過在入口部署中設置此注釋來啟用:
nginx.ingress.kubernetes.io/use-regex: "true"
更多信息https://kubernetes.github.io/ingress-nginx/user-guide/ingress-path-matching/
這已通過添加
server.servlet.context-path=/*relvantPathName*
作為容器的環境變量。 這是一個 spring 特定的東西,它需要重寫根才能工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.