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那個服務,可以使用方案二
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章