traefik使用
一、灰度发布(加权轮询)
1、创建两个Pod,appv1,appv2,基于nginx,修改index.html文件(省略)
2、创建一个TraefikService资源,使用weighted实现加权轮询wrr
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: app-wrr spec: weighted: services: - name: appv1 weight: 3 port: 80 kind: Service - name: appv2 weight: 1 port: 80 kind: Service
|
3、创建一个IngressRoute去应用TraefikService定义的策略
1 2 3 4 5 6 7 8 9 10 11 12 13
| apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: app-ingressroute-canary spec: entryPoints: - web routes: - match: Host(`testweb.weng.com`) kind: Rule services: - name: app-wrr kind: TraefikService
|
3、测试结果
访问4次,3次打在了appv1,1次打在appv2,符合定义的app-wrr策略3:1
可利用该策略实现灰度发布的功能

二、镜像流量复制
1、创建一个TraefikService资源,使用mirroring实现流量复制,并创建一个IngressRoute应用该策略
1 2 3 4 5 6 7 8 9 10 11 12
| apiVersion: traefik.io/v1alpha1 kind: TraefikService metadata: name: app-mirror spec: mirroring: name: appv1 port: 80 mirrors: - name: appv2 percent: 50 port: 80
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: name: app-ingressroute-mirror spec: entryPoints: - web routes: - match: Host(`testmrr.weng.com`) kind: Rule services: - name: app-mirror kind: TraefikService
|
2、测试结果
访问6次appv1,0次访问appv2,自动复制了百分之50即3次的流量到appv2


