【问题标题】:Two endponts into one service with Kubernetes Nginx Ingress使用 Kubernetes Nginx Ingress 将两个端点整合为一项服务
【发布时间】:2021-07-08 19:48:54
【问题描述】:

我正在尝试从 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

但我找不到如何将其直接指向服务上某个路径的示例。

我错过了什么?

【问题讨论】:

    标签: nginx kubernetes nginx-ingress


    【解决方案1】:

    您只需一条路径即可将流量重定向到您的服务。 应用内的路由应由应用处理。因此,应该没有必要为同一个服务在 ingress 中定义多个路径。

    这里有多个示例 (NodeJS/Express) 应用程序如何处理内部路由 https://expressjs.com/en/guide/routing.html

    请参阅我对类似主题的回复: https://stackoverflow.com/a/67975782/2777988

    【讨论】:

    • 但是,如果你想将这两个路径指向同一个服务(在其他入口规则的情况下)并且你需要在没有额外路径实现的情况下这样做,你可以在入口中使用正则表达式功能。
    • 谢谢!我需要的是一条路径:“- path: /(addresslookup/(.*)|geocode)”并了解路由的真正工作原理,这是你帮我做的。
    猜你喜欢
    • 2019-05-30
    • 2021-10-26
    • 2021-01-18
    • 2021-08-13
    • 1970-01-01
    • 2019-05-14
    • 2018-01-04
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多