Kubernetes 1.18.3 部署 Traefik2.0
Centos 3.10.0-693.el7.x86_64 Kubernetes 1.18.3 Traefik 2.2
Traefik 2.0 官方文檔:https://docs.traefik.io/v2.0/
1.Traefik 介紹
traefik 是一款反向代理、負載均衡服務,使用 golang 實作的。和 nginx 最大的不同是,它支援自動化更新反向代理和負載均衡配置。在微服務架構越來越流行的今天,一個業務恨不得有好幾個資料庫、背景服務和 webapp,開發團隊擁有一款 “智能” 的反向代理服務,為他們簡化服務配置。traefik 就是為了解決這個問題而誕生的。
Traefik 2.2新增的功能如下: 1. 支援了udp 2. traefik2.2 支援使用K/V存儲做為動态配置的源,分别是 consul, etcd, Redis, zookeeper 3. 能夠使用kubernetes CRD自定義資源定義UDP負載平衡 IngressRouteUDP。 4. 能夠使用 rancher, consul catalog, docker和 marathon中的标簽定義UDP的負載平衡 5. 增加了對ingress注解的主持 6. 将TLS存儲功能 TLSStores添加到Kubernetes CRD中,使kubernetes使用者無需使用配置檔案和安裝證書即可提供預設證書。 7. 在日志中增加了http的請求方式,是http還是https 8. 因為TLS的配置可能會影響CPU的使用率,是以增加了 TLS version和 TLS cipher使用的名額資訊 9. 目前的WRR算法對于權重不平衡端點存在嚴重的偏差問題,将EDF排程算法用于WeightedRoundRobin, Envoy也是使用了 EOF排程算法 10. 支援請求主體用于流量鏡像 11. 增加了 ElasticAPM作為traefik的tracing系統。 12. Traefik的Dashboard增加了UDP的頁面 13. Traefik也增加了黑暗主題
2.部署 Traefik 2.0
<code>在 traefik v2.0 版本後,開始使用 CRD(Custom Resource Definition)來完成路由配置等,是以需要提前建立 CRD 資源。</code>
下面進行安裝過程。
注:我們這裡是将traefik部署在ingress-traefik命名空間,如果你需要部署在其他命名空間,需要更改資源清單,如果你是部署在和我同樣的指令空間中,你需要建立該命名空間。
建立命名空間:
建立CRD資源
Traefik 2.0版本後開始使用CRD來對資源進行管理配置,是以我們需要先建立CRD資源。
部署 CRD 資源
建立 RBAC 權限
Kubernetes 在 1.6 以後的版本中引入了基于角色的通路控制(RBAC)政策,友善對 Kubernetes 資源和 API 進行細粒度控制。Traefik 需要一定的權限,是以這裡提前建立好 Traefik ServiceAccount 并配置設定一定的權限。
部署 Traefik RBAC 資源
建立 Traefik 配置檔案
由于 Traefik 配置很多,使用 CLI 定義操作過于繁瑣,盡量使用将其配置選項放到配置檔案中,然後存入 ConfigMap,将其挂入 traefik 中。
部署 Traefik ConfigMap 資源
設定Label标簽
由于使用的Kubernetes DeamonSet方式部署Traefik,是以需要提前給節點設定Label,當程式部署Pod會自動排程到設定 Label的node節點上。
驗證是否成功
節點删除Label标簽
Kubernetes 部署 Traefik
按照以前Traefik1.7部署方式,使用DaemonSet類型部署,以便于在多伺服器間擴充,使用 hostport 方式占用伺服器 80、443 端口,友善流量進入。
部署 Traefik
3.Traefik 路由規則基礎配置
配置 HTTP 路由規則 (Traefik Dashboard 為例)
Traefik 應用已經部署完成,但是想讓外部通路 Kubernetes 内部服務,還需要配置路由規則,這裡開啟了 Traefik Dashboard 配置,是以首先配置 Traefik Dashboard 看闆的路由規則,使外部能夠通路 Traefik Dashboard。
部署Traefik Dashboard 路由規則對象

4. 配置 HTTPS 路由規則(Kubernetes Dashboard)
這裡我們建立 Kubernetes 的 Dashboard,它是 基于 Https 協定方式通路,由于它是需要使用 Https 請求,是以我們需要配置 Https 的路由規則并指定證書。
測試域名:kuboard.heian.com (内網建立的)
建立證書檔案
打開任意浏覽器輸入位址:https://kuboard.heian.com進行通路