一文看懂traefik

一文看懂traefik

官网 https://containo.us/traefik/
参考 https://www.qikqiak.com/post/traefik-2.1-101/
说明 Traefik 是一个边缘路由器,是你整个平台的大门,拦截并路由每个传入的请求

说明

1
thumbnail: 3.png

3

  1. 相比nginx-ingress配置要简单一点

  2. 有一个web界面看起来舒服一点

    2

安装

安装直接参考上述连接,只修改namespace字段,单独放置.

使用

暴露服务

1
2
3
4
5
6
7
8
9
10
11
12
13
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: simpleingressroute #名字随便取
spec:
entryPoints:
- web #监控80端口
routes:
- match: Host(`test.rokin.cn`) #监听的域名
kind: Rule
services:
- name: web-whoami #暴露的service
port: 80 # 服务的端口

如果不指定namespace就是默认default,如果要暴露其他ns下的svc,需要指定namespace字段

1

IngressRoute如果创建,并且后端的services存在的话在界面上才会显示相应信息

将相关域名解析到k8s节点的80和443端口上,就可以访问了

https

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建secret, .cer也可以,secret也是ns下的
kubectl create secret tls who-tls --cert=tls.crt --key=tls.key
secret/who-tls created

# 修改或创建IngressRoute
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: ingressroutetls
spec:
entryPoints:
- websecure
routes:
- match: Host(`who.qikqiak.com`) && PathPrefix(`/tls`)
kind: Rule
services:
- name: whoami
port: 80
tls: # 添加
secretName: who-tls # 添加 这就是上面创建的secret

中间层

中间层是traefik的特色,可以实现很多功能,比如http自动跳转https,灰度发布,流量复制,等等,详见官网或参考.

http自动跳转https

1
2
3
4
5
6
7
8
# 创建Middleware资源,也是ns下的
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: redirect-https
spec:
redirectScheme:
scheme: https
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: ingressroutetls-http
spec:
entryPoints:
- web
routes:
- match: Host(`who.qikqiak.com`)
kind: Rule
services:
- name: whoami
port: 80
middlewares: # 添加
- name: redirect-https # 添加

这样就会自动跳转到 who.qikqiak.com 的443上去

TCP

就是通过域名暴露比如redis 6379这种端口出去,参考文档中有项目说明,下图需要重点注意

image-20200604165951605

image-20200604170335002


 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×