K8S(rancher)Nginx Ingress Controller 負載均衡多路徑問題解決方案


背景


1598255758387-695.png

通過一個域名指向多個服務

  1. 二級路區分
  2. 類型tomcat部署方式

問題


1598255795393-359.png

路徑請求存在問題

  1. 不是理想中的請求路徑

解決方案


網上資源

 
  1. 大部分文檔寫着
    1. nginx.ingress.kubernetes.io/rewrite-target=/
  2. 問題沒得到解決
    1. 是按照二級路徑區分轉發到了服務上,但是所以的請求都是 / 根路徑
    2. 1598255866965-809.png

解決方案一

 

使用域名前綴方案

  1. 微服務名稱-項目名稱-公司-com
  2. 通過域名直接解析到微服務
    1. 該請求路徑直接是到微服務路徑
      1. 注意: 不要設置 nginx.ingress.kubernetes.io/rewrite-target=/
  3. 1598255909238-230.png

解決方案二

 

請求路徑截取方案

  1. 通過通配符的方式,設置占位符,截取指定路徑Url
  2. 示例
    1. /d/(.*)   -- iptest服務路徑
    2. nginx.ingress.kubernetes.io/rewrite-target=/$1
  3. 原理
    1. Nginx 路徑重寫功能原理
  4. 1598256025043-790.png

配置方式截圖

1598256047099-606.png

 

備注


  1. 一個問題可以有多個解決方案。
  2. 使用哪種解決方案取決自己實際情況。
  3. 推薦使用
    1. 只有一個服務暴露的可以使用方案一
    2. 集成模型系統可以使用方案一
    3. 一個中心(項目)下N那個服務,可以使用方案二


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM