一、什么是 Traefik
Traefik 是一款开源的边缘路由器,现在本人主要要作用于 kubernetes 中对外的网关,即 Ingress 路由
器,可以很轻松的配置其路由规则,让 Kubernetes 外部流量涌入。并且,还支持如 Zipkin、Jaeger 等
链路追踪功能,简单好用。
二、什么是 Traefik 路由规则
首先,当部署完后启动 Traefik 时,定义了入口点(端口号和对应的端口名称),然后 Kubernetes 集
群外部就可以通过访问 Traefik 服务器地址和配置的入口点对 Traefik 服务进行访问,在访问时一般会带
上 “域名” + “入口点端口”,然后 Traefik 会根据域名和入口点端口在 Traefik 路由规则表中进行匹配,如
果匹配成功,则将流量发送到 Kubernetes 内部应用中与外界进行交互。这里面的域名与入口点与对应
后台服务关联的规则,即是 Traefik 路由规则。
三、什么是 Traefik Middlewares 中间件
Traefik Middlewares 是一个处于路由和后端服务之前的中间件,在外部流量进入 Traefik,且路由规则
匹配成功后,将流量发送到对应的后端服务前,先将其发给中间件进行一些列处理(类似于过滤器链
Filter,进行一系列处理),例如,添加 Header 头信息、鉴权、流量转发、处理访问路径前缀、IP 白
名单等等,经过一个或者多个中间件处理完成后,再发送给后端服务,这个就是中间件的作用。
了解什么是 Traefik Middlewares 之前,最好先了解上面提到的 Traefik Ingress 路由规则。
四、如何配置 Traefik 路由规则
在 Kubernetes 中 Traefik 支持 CRD 和 Ingress 两种方式进行路由规则配置,这里配置 Http 和 Https
两种方式为例进行演示。
(1)、配置 Traefik Dashboard 的 HTTP 路由规则为例,使用域名 traefik.ziji.work 与其后端服务
关联。
(2)、配置 Kubernetes Dashboard 的 HTTPS 路由规则为例,使用域名 cloud.ziji.work 与其后端
服务关联。
注意:本人部署 Traefik 时候指定了 80 端口的进入点名称是 “web”,而 443 端口的进入点名称为
“websecure”,部署 traefik 时可能这个进入点名称不同,下面的路由规则中设置进入点也不一
样,这点需要注意下。
1、方式一:使用 Traefik CRD 配置路由规则
基于 HTTP 路由路由规则: