tr?f?k 是一個為了讓部署微服務更加便捷而誕生的現代http反向代理、負載均衡工具。 它支持多種后臺(docker,?swarm,?kubernetes,?marathon,?mesos,?consul,?etcd,?zookeeper,?boltdb, rest api, file…) 來自動化、動態的應用它的配置文件設置。
由于微服務架構以及Docker技術和kubernetes編排工具最近幾年才開始逐漸流行,所以一開始的反向代理服務器比如nginx、apache并未提供其支持,畢竟他們也不是先知;所以才會出現 Ingress Controller 這種東西來做 kubernetes 和前端負載均衡器如 nginx 之間做銜接;即 Ingress Controller 的存在就是為了能跟 kubernetes 交互,又能寫 nginx 配置,還能 reload 它,這是一種折中方案;而最近開始出現的 traefik 天生就是提供了對 kubernetes 的支持,也就是說 traefik 本身就能跟 kubernetes API 交互,感知后端變化,因此可以得知: 在使用 traefik 時,Ingress Controller 已經無卵用了!
Traefik 與 nginx 一樣,是一款反向代理的工具,至于使用他原因基于以下幾點
漂亮的dashboard界面
可基于容器label進行配置新添服務簡單,不用像nginx一樣復雜配置,并且不用頻繁重啟
對prometheus和k8s的集成
Traefik 的基礎組件
就兩個組件,就這么簡單,支持自己寫 middle-ware。
Traefik
Traefik 的主程序,啟動時可以指定配置文件,
Dashboard
一個簡單的Dashboard, 可以看當前的路由規則,和轉發的結果統計。
配置文件如何使用
Traefik 的配置分為靜態配置?和動態配置兩大類。
動態配置:用來控制路由和負載均衡策略,動態配置不需要重起Traefik就可以生效。
靜態配置:簡單的說吧除了動態配置的其他均為靜態配置范疇,靜態配置需要重啟Traefik才能生效。
配置詳細說明我就不寫了,到官網上找你需要的配置是最明智的(我是明智的官網)。
但是在后面的的練習中會說明部分配置的意義。
注意點
動態配置可以和靜態配置一起在同一個文件里,動態配置寫在文件的最后。 如果想用配置文件來指定路由規則的話,需要將動態配置和靜態配置文件分開,如下 ## 在 "靜態配置的最后面" 加入下面信息來指定動態配置文件[file]watch = truefilename = "rules.toml"
更多Nginx相關技術文章,請訪問Nginx使用教程欄目進行學習!?