Traefik v2 源碼安裝訪問dashboard

前言

Traefik v2 版本已經(jīng)發(fā)布有一段時(shí)間了,看到 v2 有一些很不錯(cuò)的功能:

  • 支持TCP
  • 支持路由中間件
  • 支持灰度發(fā)布
  • 支持流量復(fù)制
  • 全新的 dashboard
  • ...

看官網(wǎng)的文檔和一些中文的教程都是使用docker的示例,有些細(xì)節(jié)理解起來有點(diǎn)吃力,通過可執(zhí)行文件學(xué)習(xí),可以更好的理解其中的一些細(xì)節(jié)。
下面描述一下 Traefik v2 源碼編譯安裝,啟動(dòng),并訪問 dashboard的過程。

編譯安裝

1 獲取最新源碼

git clone git@github.com:containous/traefik.git

cd traefik 

git checkout v2.1

2 生成 webui 的靜態(tài)文件

cd webui

npm install

npm run build

可以看到 traefik/static 目錄下生成了靜態(tài)文件

3 使用go-bindata把靜態(tài)文件都打包到 go 程序中

go generate

4 編譯生成可執(zhí)行文件 traefik

go build -v -o traefik ./cmd/traefik

5 配置文件

Traefik 中的配置發(fā)現(xiàn)是通過 provider 組件實(shí)現(xiàn)的
現(xiàn)在支持的 provider 有 docker、k8s、File 、Marathon 、Rancher
下面以 File 作為示例

  • 靜態(tài)配置文件 traefik.toml,僅在啟動(dòng)時(shí)被加載
[global]
  checkNewVersion = true
  sendAnonymousUsage = true

[entryPoints]
  [entryPoints.web]
    address = ":80"

  [entryPoints.websecure]
    address = ":443"

[log]
  level = "DEBUG"

[api]
  dashboard = true

[ping]

[providers]
  [providers.file]
    directory = "/path/config"
    filename = "dynamic.yml"
    watch = true
  • 動(dòng)態(tài)配置文件 dynamic.toml,可被熱更新(無需重啟進(jìn)程)
[http.routers]
  [http.routers.api]
    rule = "Host(`127.0.0.1`)"
    entryPoints = ["web"]
    service = "api@internal"

6 啟動(dòng) traefik 服務(wù)

./traefik --configfile=traefik.toml

7 瀏覽器訪問 http://127.0.0.1, 可以打開 taefik dashboard

訪問Traefik v2 的 dashborad,使用官方的 docker 示例,直接運(yùn)行就可以了,但是源碼編譯安裝的包,啟動(dòng)后訪問 dashboard 一直 404,過程中卻折騰了很久,主要是2,3步的文檔中給的有點(diǎn)少,我google了很久,發(fā)現(xiàn)不少人也遇到同樣的問題,都沒有好的解決辦法。最后是在閱讀源碼 dashboard 部分找到方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容