1. 程式人生 > >Kubernetes 服務入口管理 Traefik Ingress Controller

Kubernetes 服務入口管理 Traefik Ingress Controller

image

前面部署了 kubernetes/ingress-nginx 作為 Ingress Controller,使用 Nginx 反向代理與負載,通過 Ingress Controller 不斷的跟 Kubernetes API 互動,實時獲取後端 Service、Pod 等的變化,然後動態更新 Nginx 配置,並重新整理使配置生效。Traefik 是一個用 Golang 開發的輕量級的 Http 反向代理和負載均衡器軟體,由於可以自動化配置和重新整理 backend 節點,目前可以被絕大部分容器平臺與元件支援,例如 Docker, Swarm mode, Kubernetes,, Consul

, Etcd, Rancher, Eureka 等。Traefik 設計的就能夠實時跟 Kubernetes API 互動,感知後端 Service、Pod 等的變化,自動更新配置並熱過載,使用上大體上差不多,但是 Traefik 更快速更方便,同時支援更多的特性,使反向代理、負載均衡更直接,更高效。

Traefik 特性

  • 自動化動態配置無需服務重啟
  • 支援多個負載平衡演算法
  • 支援 Let’s Encrypt (萬用字元支援) 向您的微服務提供 HTTPS
  • 支援熔斷,重試
  • 叢集模式的高可用性
  • 提供簡潔的 UI 介面
  • 支援 Websocket, HTTP/2, GRPC 協議
  • 提供監控的服務(Rest、Prometheus、Datadog、Statsd、InfluxDB)
  • 保留訪問日誌(JSON,CLF)
  • 快速
  • 支援 Rest API
  • 使用二進位制檔案打包,並作為一個 docker 映象提供

配置 Traefik

所有的配置檔案可以在官方的 github 倉庫中找到,

 

REFER:

https://docs.traefik.io/user-guide/kubernetes/

https://github.com/containous/traefik/tree/master/examples/k8s