Traefik Proxy V3版本正式发布: 支持WebAssem)bly等特性

特性简单介绍

主要摘自官方博客Announcing Traefik Proxy v3.0 RC1

V3版本增加了对流行、新兴技术的支持——WebAssemblyWasm)、OpenTelemetryKubernetes 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

Chapters

Sponsor

Like this article? $1 reward

Comments