traefik: 基礎入門總結


traefik介紹

traefik-現代反向代理,也可稱為現代邊緣路由;traefik原聲兼容主流集群,Kubernetes,Docker,AWS等。官方的定位traefik是一個讓開發人員將時間花費在系統研發與部署功能上,而非配置和維護。並且traefik官方也提供自己的服務網格解決方案

作為一個 modern edge router ,traefik擁有與envoy相似的特性

  • 基於go語言研發,目的是為了簡化開發人員的配置和維護
  • tcp/udp支持
  • http L7支持
  • GRPC支持
  • 服務發現和動態配置
  • front/ edge prory支持
  • 可觀測性
  • 流量管理
  • ...

traefik 術語

要了解trafik,首先需要先了解一下 有關trafik中的一些術語。

  • EntryPoints 入口點,是可以被下游客戶端連接的命名網絡位置,類似於envoy 的listener和nginx的listen
  • services 服務,負載均衡,上游主機接收來自traefik的連接和請求並返回響應。 類似於nginx upstream envoy的clusters
  • Providers 提供者,提供配置文件的后端,如文件,consul,redis,etcd等,可使traefik自動更新
  • routers 路由器,分析請求,將下游主機的請求處理轉入到services
  • middlewares: 中間件,在將下游主機的請求轉入到services時進行的流量調整

traefik部署安裝

traefik為go語言開發的,可以直接下載運行即可。此處介紹直接運行二進制程序

后端環境准備,此處為docker運行的兩個后端。

version: '3'
services:
  webserver1:
    image: sealloong/envoy-end:latest
    ports:
    - 91:90
    networks:
      envoymesh:
        aliases:
        - v1_server
        - default_server
    environment: 
    - VERSION=v1
    - COLORFUL=blue
    expose:
    - 90
  webserver2:
    image: sealloong/envoy-end:latest
    ports:
    - 92:90
    networks:
      envoymesh:
        aliases:
        - v1_server
        - default_server
    environment: 
    - VERSION=v1
    - COLORFUL=blue
    expose:
    - 90
networks:
  envoymesh: {}

traefik配置說明

Traefik中的配置可以引用兩種不同的內容:

  • 完全動態路由配置(動態配置)
  • 啟動時配置(靜態配置)

靜態配置一般定義traefik的endpoints 與providers,這些不經常變動
動態配置一般定義traefik的處理瀏覽的部分,如 中間件,路由,瀏覽管理等。

  • traefik1 與 traefik2的配置文件不兼容

此處配置主要以file方式講解。

靜態配置部分:

entryPoints:
  web:
    address: :8081
[api]
    dashboard = true
    insecure  = true
providers:
  file:
    filename: ./root.yaml
[accessLog]
  filePath = "/root/access.log"
  format = "json"

動態配置部分

http:
  routers:
    router0:
      rule: "Host(`test.com`)"
      service: "service-foo"
      entryPoints:
      - web
    router1:
      rule: "Path(`/`)"
      service:  "baidu"
      entryPoints:
      - web
  services:
    service-foo:
      loadBalancer:
        servers:
        - url: "http://10.0.0.4:91/"
        - url: "http://10.0.0.4:92/"
    baidu:
      loadBalancer:
        servers:
        - url: http://www.baidu.com/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM