IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    ysicing (i@ysicing.me)发表于 2024-05-01 10:29:53
    love 0

    特性简单介绍

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

    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
    


沪ICP备19023445号-2号
友情链接