文档

通过AlbConfig配置QUIC监听

更新时间:

QUIC协议在应用程序层面可以实现不同的拥塞控制算法,被称为快速UDP互联网连接协议。QUIC提供与SSL相同的安全性,同时具备多路复用、0-RTT握手等多种优势,具有极佳的弱网性能,在丢包和网络延迟严重的情况下,不需要操作系统和内核支持仍可提供可用的服务。相比于传统的TCP协议,QUIC拥有更好的改造灵活性,适合用于在TCP协议遇到瓶颈的业务。本文介绍如何通过AlbConfig创建QUIC,并且将QUIC监听和HTTPS监听关联。

前提条件

注意事项

  • QUIC监听支持单独使用,也支持与HTTPS监听联合使用。当QUIC监听与HTTPS监听联合使用时,需要同时创建QUIC/HTTPS监听,为HTTPS监听绑定关联的QUIC监听并开启QUIC升级。

  • 当前ALB已经支持gQUIC和HTTP/3协议,但客户端暂未全量支持HTTP/3协议。在QUIC监听与HTTPS监听联合使用时,ALB会优先选择HTTP/3协议进行通信。如果客户端不支持HTTP/3协议,则ALB会回退为使用HTTPS或HTTP/2协议。

ALB Ingress Controller支持QUIC监听与HTTPS监听绑定在同一端口。如下图所示,在一个ALB实例上创建QUIC监听与HTTPS监听,两个监听全部绑定在443端口,并分别为两个监听配置转发规则。

image.png

步骤一:获取SSL证书ID

具体操作,请参见使用AlbConfig指定证书

步骤二:通过AlbConfig创建QUIC监听和HTTPS监听

  1. 拷贝以下内容到alb-test.yaml,通过AlbConfig创建QUIC监听和HTTPS监听。

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo # 自定义AlbConfig名称。
    spec:
      config:
        name: alb-test
        addressType: Internet
        zoneMappings:
        - vSwitchId: vsw-2vcbhjlmxxx # 具体vSwitch ID。
        - vSwitchId: vsw-2vc94zb2xxx # 具体vSwitch ID。
      listeners:
      - caEnabled: false
        certificates:
        - CertificateId: 868xxx-cn-hangzhou # 具体CertificateId(已获取的SSL证书ID)。
          IsDefault: true
        port: 443 # 具体HTTPS端口号,默认为443。
        protocol: HTTPS
        quicConfig:
          quicListenerId: ""
          quicUpgradeEnabled: false
        requestTimeout: 0
      - caEnabled: false
        certificates:
        - CertificateId: 868xxx-cn-hangzhou # 具体CertificateId(已获取的SSL证书ID)。
          IsDefault: true
        port: 443 # 具体QUIC端口号,支持与HTTPS监听同端口。
        protocol: QUIC
        requestTimeout: 0
  2. 执行以下命令,创建AlbConfig。

    kubectl apply -f alb-test.yaml

    预期输出:

    albconfig.alibabacloud.com/alb-demo created

步骤三:关联监听

  1. 登录应用型负载均衡ALB控制台

  2. 实例页面,单击目标实例ID。在监听页签,查找并获取QUIC监听的Listener ID,以备后续使用。

    说明

    当前ALB控制台仅支持通过Listener ID将QUIC监听与HTTPS监听进行关联。

  3. 为HTTPS监听关联已创建的QUIC监听,并开启QUIC升级。

    1. 执行以下命令,编辑AlbConfig。

      kubectl -n kube-system edit AlbConfig alb-demo # alb-demo为本文示例,实际AlbConfig名称请替换成为您自己的。
    2. 在AlbConfig配置文件中,更新如下内容。

      # 以上内容省略。
          port: 443
          protocol: HTTPS
          quicConfig:
            quicListenerId: lsn-tnz740dr8p5h65**** # 具体QUIC监听listener ID。
            quicUpgradeEnabled: true # 开启QUIC升级,QUIC升级开关置为true。
          requestTimeout: 0
      # 以下内容省略。
  4. 查看HTTPS监听是否已关联QUIC监听。

    1. 登录应用型负载均衡ALB控制台

    2. 实例页面,单击目标实例ID,然后在实例详情页面,单击监听页签,最后在监听列表,单击目标HTTPS监听名称,查看已关联的QUIC监听。

      image.png

(可选)步骤四:解除HTTPS与QUIC关联

  1. 执行以下命令,编辑AlbConfig。

    kubectl -n kube-system edit AlbConfig alb-demo # alb-demo为本文示例,实际AlbConfig名称请替换成为您自己的。
  2. 在AlbConfig配置文件中,更新以下内容。

    # 以上内容省略。
        port: 443
        protocol: HTTPS
        quicConfig:
          quicListenerId: "" # 将QUIC监听listener ID置空。
          quicUpgradeEnabled: false # 关闭QUIC监听升级,QUIC升级开关置为false。
        requestTimeout: 0
    # 以下内容省略。

(可选)步骤五:删除HTTPS监听及QUIC监听

  1. 确认已解除HTTPS与QUIC的关联。如未解除,请先执行步骤四

    重要

    目前ALB控制台无法删除有关联的监听,因此删除QUIC监听和HTTPS监听前,必须先解除HTTPS与QUIC的关联。

  2. 执行以下命令,编辑AlbConfig。

    kubectl -n kube-system edit AlbConfig alb-demo # alb-demo为本文示例,实际AlbConfig名称请替换成为您自己的。
  3. 在AlbConfig配置文件中,删除以下内容。

    # 以上内容省略。
      listeners:
      - caEnabled: false
        certificates:
        - CertificateId: 11055487-cn-hangzhou
          IsDefault: true
        port: 443
        protocol: HTTPS
        quicConfig:
          quicListenerId: ""
          quicUpgradeEnabled: false
        requestTimeout: 0
      - caEnabled: false
        certificates:
        - CertificateId: 10336983-cn-hangzhou
          IsDefault: true
        port: 443
        protocol: QUIC
        requestTimeout: 0

  • 本页导读 (1)
文档反馈