本文发布于Cylon的收藏册,转载请著名原文链接~
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/
本文发布于Cylon的收藏册,转载请著名原文链接~
链接:https://www.oomkill.com/2020/10/traefik-on-physical/
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。