使用 Kubernetes Nginx Ingress 将两个端点整合到一项服务中
Two endponts into one service with Kubernetes Nginx Ingress
我正在尝试从 Kubernetes NGinx 入口中的常规 NGinx 重现此配置:
location /addresslookup/ {
...
proxy_pass https://fmt-address-lookup-service:5005/addresslookup/;
}
location /geocode/ {
...
proxy_pass https://fmt-address-lookup-service:5005/geocode/;
}
基本上我想要两个不同的外部端点通过 same Kubernetes 服务上的两个不同路径。我可以看到如何设置两个端点并将它们指向服务:
rules:
- host: api2.findmytea.co.uk
http:
paths:
- path: /addresslookup/(.*)
backend:
serviceName: fmt-address-lookup
servicePort: 5004
- path: /geocode/(.*)
backend:
serviceName: fmt-address-lookup
servicePort: 5004
但我找不到如何使其直接指向服务上特定路径的示例。
我错过了什么?
您只需要一条路径即可将流量重定向到您的服务。
应用程序内的路由应由应用程序处理。所以,同一个服务应该不需要在ingress中定义多条路径。
这里有多个示例 (NodeJS/Express) 应用如何处理内部路由
https://expressjs.com/en/guide/routing.html
参考我对类似主题的回复:
我正在尝试从 Kubernetes NGinx 入口中的常规 NGinx 重现此配置:
location /addresslookup/ {
...
proxy_pass https://fmt-address-lookup-service:5005/addresslookup/;
}
location /geocode/ {
...
proxy_pass https://fmt-address-lookup-service:5005/geocode/;
}
基本上我想要两个不同的外部端点通过 same Kubernetes 服务上的两个不同路径。我可以看到如何设置两个端点并将它们指向服务:
rules:
- host: api2.findmytea.co.uk
http:
paths:
- path: /addresslookup/(.*)
backend:
serviceName: fmt-address-lookup
servicePort: 5004
- path: /geocode/(.*)
backend:
serviceName: fmt-address-lookup
servicePort: 5004
但我找不到如何使其直接指向服务上特定路径的示例。
我错过了什么?
您只需要一条路径即可将流量重定向到您的服务。 应用程序内的路由应由应用程序处理。所以,同一个服务应该不需要在ingress中定义多条路径。
这里有多个示例 (NodeJS/Express) 应用如何处理内部路由 https://expressjs.com/en/guide/routing.html
参考我对类似主题的回复: