Traefik Proxy V3版本正式发布: 支持WebAssem)bly等特性
本文最后更新于 129 天前, 如有失效请评论区留言.
特性简单介绍
V3版本增加了对流行、新兴技术的支持——WebAssembly
(Wasm
)、OpenTelemetry
和 Kubernetes Gateway API
代理的核心是路由和安全,我们对路由规则的关键部分进行了迭代,并增加了对一些前沿技术的支持,如 HTTP/3、SPIFFE 和 Tailscale
路由与安全
HTTP/3
稳定版本支持,基于quic-go
- 支持
Brotli 压缩算法
, 网站加载速度加快 grpc
支持tailscale
联动,支持通过tailscale签发证书
扩展
支持Wasm开发traefik插件,提升性能与安全性。
〉WebAssembly(Wasm)是一种可在现代 Web 浏览器中运行的二进制代码格式。由于其高效性能和安全性,WebAssembly 在许多领域都得到了广泛应用。
可观测性
支持了OpenTelemetry
集成Kubernetes Gateway API
Traefik可以说是Gateway API先锋,最早支持GatewayAPI版本的,现在全面支持,也很正常。
v2迁移v3
总体上来说,没有什么特别重点变更。如果你是从很早版本之前升级上来的可能需要注意了。
CRD更新
目前更新charts版本不会自动更新已经存在的crd,老版本升级可能需要注意,更新一下CRD资源
kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/master/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
安装参数变更
# 老版本
expose: true
# 新版本
expose:
default: true
资源版本
v3版本移除对traefik.containo.us
的支持
这个在v2版本里已经调整为traefik.io/v1alpha1
IP白名单插件调整
目前使用ipAllowList
,
ipWhiteList
已经废弃,可能后续版本就不支持了,暂时没影响
测试Demo
apiVersion: v1
kind: Service
metadata:
name: whoami
spec:
ports:
- protocol: TCP
name: web
port: 80
selector:
app: whoami
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: whoami
labels:
app: whoami
spec:
replicas: 2
selector:
matchLabels:
app: whoami
template:
metadata:
labels:
app: whoami
spec:
nodeSelector:
node-role.kubernetes.io/bj: "true"
containers:
- name: whoami
image: h2.ysicing.net/containous/whoami
resources:
limits:
cpu: 100m
memory: 128M
ports:
- name: web
containerPort: 80
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: whoami-http
spec:
entryPoints:
- web
routes:
- match: Host(`whoami.bjslb.ysicing.net`) && PathPrefix(`/notls`)
kind: Rule
services:
- name: whoami
port: 80
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: whoami-https
spec:
entryPoints:
- websecure
routes:
- match: Host(`whoami.bjslb.ysicing.net`) && PathPrefix(`/tls`)
kind: Rule
services:
- name: whoami
port: 80
tls:
certResolver: myresolver