Rancher部署Træfik實現微服務的快速發現

Træfik 是什麼?

Træfik 是一個爲了讓部署微服務更加便捷而誕生的現代HTTP反向代理、負載均衡工具。它支持多種後臺 (Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd、Zookeeper、BoltDB、Rest API、file…) 來自動、動態的刷新配置文件,以實現快速地服務發現。前端

圖片描述

特性

  • 它很是快
  • 無需安裝其餘依賴,經過Go語言編寫的單一可執行文件
  • 支持 Rest API
  • 多種後臺支持:Rancher、Docker、Swarm、Kubernetes、Marathon、Mesos、Consul、Etcd,而且還會更多
  • 後臺監控,能夠監聽後臺變化進而自動化應用新的配置文件設置
  • 配置文件熱更新。無需重啓進程
  • 正常結束http鏈接
  • 後端斷路器
  • 輪詢,rebalancer 負載均衡
  • Rest Metrics
  • 支持最小化 官方 docker 鏡像
  • 後臺支持SSL
  • 前臺支持SSL(包括SNI)
  • 清爽的AngularJS前端頁面
  • 支持Websocket
  • 支持HTTP/2
  • 網絡錯誤重試
  • 支持Let’s Encrypt (自動更新HTTPS證書)
  • 高可用集羣模式

清爽的界面

Træfik 擁有一個基於AngularJS編寫的簡單網站界面。nginx

圖片描述
圖片描述
以上內容轉自:https://traefik.cndocker

Rancher-Træfik部署

爲了保證 Træfik 資源不受其餘服務的影響,咱們能夠經過指定專機專用的方式,讓 Træfik 服務獨自運行在某一臺節點上。後端

PS:專機專用功能,目前只適用於 Rancher 自動調度容器。網絡

1、運行 Rancher Server 並添加 Rancher-Agent 專機專用節點

  • 經過http://rancher-server:8080 地址登陸 WEB;
  • 功能定位到 基礎設施|主機,並點擊添加主機,複製生成的命令來添加一臺 Rancher-Agent;
  • 主機成功添加後,頁面定位到 基礎設施|主機 ,找到須要的主機,在主機視圖的右上角,點擊三個點的省略號,再點擊編輯;
  • 在主機編輯視圖中,分別在標籤與容器標籤需求中添加 træfik_lb=true;

PS:第一個標籤:Træfik 服務在啓動時會檢查主機是否有 træfik_lb=true 標籤,只有帶有這個標籤的主機才能安裝Træfik服務。
第二個容器標籤需求:這個就是專機專用的功能,經過設置 træfik_lb=true 這個標籤,只有帶有 træfik_lb=true 標籤的服務才能運行到這個節點上。架構

圖片描述
圖片描述

2、進入商店(Catalog)搜索並安裝Træfik應用

標籤設置好以後,進入商店搜索Træfik並安裝;負載均衡

圖片描述

點擊查看詳情進入配置界面,這裏咱們把 http port 端口改成80 ,其餘配置保持默認。最後點擊啓動;dom

圖片描述

進入 應用|用戶 視圖,能夠看到Træfik應用已正常運行;socket

圖片描述

進入 基礎架構|主機 視圖下,能夠看到Træfik運行在指定主機上;微服務

3、運行 demo 應用

  • 新建一個名爲 demo 的空應用棧;
  • 在 demo 中添加一個名爲 nginx 的服務,把數量設置爲4,

圖片描述

  • 在標籤設置中,添加以下幾條標籤:

圖片描述

  • træfik.enable = true 能夠理解爲是否把此服務註冊到træfik的一個開關; træfik.domain = test.local 一個適用於全部服務訪問的主域名,能夠設置多個用逗號隔開;træfik.alias = nginx 服務別名,能夠理解爲主域名下的二級域名,能夠設置多個用逗號隔開;træfik.port = 80 告訴træfik 服務暴露的端口號;
  • Træfik默認強制開啓健康檢查,全部只有健康的服務纔會被註冊到Træfik上。在健康檢查中配置健康檢查

圖片描述

  • 服務正常運行

圖片描述

4、demo-nginx 服務配置

  • Træfik有服務管理控制檯,默認端口8000。

圖片描述

  • 在控制檯中能夠看到訪問地址:nginx.demo.test.local,nginx.test.local,之前當先後端 健康server 數目
  • 測試訪問:nginx.demo.test.local,nginx.test.local

圖片描述


9月27日,北京海航萬豪酒店,容器技術大會Container Day 2017即將舉行。

CloudStack之父、海航科技技術總監、華爲PaaS部門部長、恆豐銀行科技部總經理、阿里雲PaaS工程總監、民生保險CIO······均已加入豪華講師套餐!

11家已容器落地企業,15位真·雲計算大咖,13場純·技術演講,結合實戰場景,聚焦落地經驗。免費參會+超高規格,詳細議程及註冊連接請戳

圖片描述

相關文章
相關標籤/搜索