Ttraefik_學習

traefik 學習

倉庫地址

docker-compose 快速開始

lesson2 二進制文件啓動,負載到2個自定義服務

lesson3 負載到容器進程

traefik-simple 簡單配置

Routers Services Providers Middlewares

Routers
在Traefik中,Routers是將傳入的請求路由到正確的服務的機制。Routers可以根據請求的主機名、路徑、請求頭、請求方法等進行匹配,並將請求轉發到相應的Service。以下是Routers的定義和一個示例:

定義
Routers定義瞭如何將傳入的請求路由到正確的Service。每個Router都具有一個唯一的名稱和一個或多個入口點。入口點可以是HTTP請求的主機名、路徑、請求頭、請求方法等。

示例
Router示例,它將所有到example.com的HTTP請求路由到名爲example的Service:

http:
  routers:
    my-router:
      rule: "Host(`example.com`)"
      service: "example"

Services

在Traefik中,Services是實際處理請求的後端應用程序。Services可以是容器、Kubernetes Pod、虛擬機等。Traefik支持多種類型的Service,例如HTTP、TCP、UDP、gRPC等。以下是Services的定義和一個示例:

定義
Services定義了後端應用程序的地址和端口,並定義瞭如何將請求傳遞給該應用程序。每個Service都具有一個唯一的名稱和一個或多個後端地址。

示例
以下是一個基本的HTTP Service示例,它將所有請求傳遞到名爲my-app的HTTP服務:

http:
  services:
    my-app:
      loadBalancer:
        servers:
        - url: "http://my-app:8080"

Providers

在Traefik中,Providers是用於動態配置Traefik的插件。Traefik支持多種Providers,包括Docker、Kubernetes、Mesos、Consul、ZooKeeper等。以下是Providers的定義和一個示例:

定義
Providers定義了Traefik可以使用的外部源,以獲取動態路由和負載平衡信息。每個Provider都具有一個唯一的名稱和一個或多個配置參數。

示例
以下是一個基本的Docker Provider示例,它從本地Docker守護程序獲取容器信息,並自動爲這些容器配置路由規則和負載平衡:

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"

Middlewares

在Traefik中,Middlewares是一種在請求處理過程中添加邏輯的機制。Middlewares可以用於添加安全性、日誌記錄、重定向、認證等功能。以下是Middlewares的定義和一個示例:

定義
Middlewares定義了請求處理過程中要執行的邏輯。每個Middleware都具有一個唯一的名稱和一個或多個配置參數。

示例
以下是一個基本的Redirect Middleware示例,它將所有HTTP請求重定向到HTTPS:

http:
  middlewares:
    my-middleware:
      basicAuth:
        users:
          - "username:password"
    rate-limit:
      rateLimit:
        average: 100
        burst: 200
        period: 10s
  routers:
    my-router:
      rule: "Host(`example.com`) && Path(`/api`)"
      middlewares:
        - my-middleware
        - rate-limit
      service: my-service
      entryPoints:
        - web
http:
  routers:
    my-router:
      rule: "Host(`example.com`) && Path(`/api`)"
      service: my-service
      entryPoints:
        - web
        - secure
  services:
    my-service:
      loadBalancer:
        servers:
          - url: "http://localhost:8080"
  entryPoints:
    web:
      address: ":80"
    secure:
      address: ":443"

在上述示例中,Traefik定義了兩個入口點,一個是web,另一個是secure。然後,在名爲my-router的路由器中,entryPoints屬性被定義爲web和secure,表示該路由器將使用這兩個入口點。最後,Traefik定義了一個名爲my-service的服務,它將負責將流量路由到後端服務器。

其他

Global Configuration
全局配置包括Traefik的基本設置,如日誌記錄級別、入口點、TLS配置等。以下是全局配置的定義和一個示例:

定義
Global Configuration定義了Traefik的全局設置。每個Global Configuration都具有一個唯一的名稱和一些基本設置,如日誌記錄級別、入口點、TLS配置等。

示例
以下是一個基本的Global Configuration示例,它定義了Traefik的日誌記錄級別、入口點和TLS配置:

global:
  log:
    level: "DEBUG"

  entryPoints:
    web:
      address: ":80"

  tls:
    certificates:
      - certFile: "/path/to/cert.pem"
        keyFile: "/path/to/key.pem"

TLS

在Traefik中,TLS用於配置HTTPS。TLS證書用於驗證服務器身份,並加密數據傳輸。以下是TLS配置的定義和一個示例:

定義
TLS定義了Traefik使用的HTTPS配置。每個TLS配置都具有一個唯一的名稱和一個或多個證書配置。

示例
以下是一個基本的TLS配置示例,它定義了Traefik使用的HTTPS證書和私鑰:

tls:
  certificates:
    - certFile: "/path/to/cert.pem"
      keyFile: "/path/to/key.pem"

Access Logging

在Traefik中,Access Logging用於記錄請求和響應的詳細信息。這些日誌可以用於監控、故障排除和性能優化等目的。以下是Access Logging的定義和一個示例:

定義
Access Logging定義了Traefik如何記錄請求和響應的詳細信息。每個Access Logging都具有一個唯一的名稱和一些配置參數,如日誌格式、輸出位置等。

示例
以下是一個基本的Access Logging示例,它將請求和響應的詳細信息記錄到指定的文件中:

accessLog:
  filePath: "/path/to/access.log"

Tracing

在Traefik中,Tracing用於跟蹤請求的流經和處理過程。Tracing可以用於診斷問題和優化性能。以下是Tracing的定義和一個示例:

定義
Tracing定義了Traefik如何跟蹤請求的流經和處理過程。每個Tracing都具有一個唯一的名稱和一些配置參數,如跟蹤工具、採樣率等。

示例
以下是一個基本的Tracing示例,它使用Jaeger跟蹤請求的流經和處理過程:

tracing:
  serviceName: "my-service"
  provider: "jaeger"
  jaeger:
    endpoint: "http://jaeger:14268/api/traces"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章