更新时间:2026-01-31 GMT+08:00
分享

为ELB Ingress配置QUIC监听器

QUIC协议是基于UDP的快速互联网连接协议,具备低时延、避免队头阻塞的多路复用优势,极佳的弱网性能可以有效解决网络、视频卡顿的问题,提升网络使用体验,同时保障数据传输的安全性。CCE支持为负载均衡类型的Service配置QUIC协议,本文以Nginx应用为例,介绍如何通过QUIC协议实现访问。

前提条件

  • 已创建一个CCE Standard或CCE Turbo集群,且集群版本满足以下要求:
    • v1.28集群:v1.28.15-r80及以上版本
    • v1.29集群:v1.29.15-r40及以上版本
    • v1.30集群:v1.30.14-r40及以上版本
    • v1.31集群:v1.31.14-r0及以上版本
    • v1.32集群:v1.32.9-r0及以上版本
    • v1.33集群:v1.33.7-r0及以上版本
    • v1.34集群:v1.34.2-r0及以上版本
    • 其他更高版本的集群
  • 集群中需提前部署可用的工作负载用于对外提供访问。若您无可用工作负载,可参考创建无状态负载(Deployment)创建有状态负载(StatefulSet)创建守护进程集(DaemonSet)部署工作负载。
  • 为提供对外访问的工作负载配置Service,ELB Ingress支持的Service类型请参见ELB Ingress支持的Service类型
  • 已准备可信的证书,您可以从证书提供商处获取证书。操作详情请参见购买SSL证书

约束与限制

  • 仅独享型且是“应用型”“网络型&应用型”的负载均衡实例支持创建QUIC监听器。
  • QUIC监听器仅支持添加后端协议为HTTP/HTTPS的后端服务器组。
  • QUIC监听器关联的后端服务器组流量分配策略不支持源IP算法。
  • QUIC监听器不支持添加以下HTTP头字段:
    • X-Forwarded-For-Port:通过重写X-Forwarded-For-Port字段获取客户端的端口。
    • X-Real-IP:通过重写X-Real-IP字段获取客户端的源IP地址。
  • QUIC监听器不支持基于网段的转发策略。
  • QUIC监听器不支持双向认证。
  • QUIC监听器不支持安全策略。
  • 使用QUIC监听器同时配置高级转发动作中的限速功能时,不支持配置perSourceIpQps参数。

配置QUIC监听器

您可以使用以下方式为Ingress配置QUIC监听器。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 选择左侧导航栏的“服务”,在右侧选择“路由”页签,单击右上角“创建路由”
  3. 设置Ingress参数。

    本示例中展示配置QUIC监听器的关键参数,其余参数可按需配置,详情请参见通过控制台创建ELB Ingress

    表1 关键参数说明

    参数

    配置说明

    示例

    名称

    自定义Ingress名称。

    ingress-test

    负载均衡器

    选择对接的ELB实例或自动创建ELB实例。本例中仅支持选择“独享型”

    独享型ELB

    监听器配置

    • 前端协议:为Ingress配置QUIC监听器需选择“QUIC”
    • 对外端口:ELB监听器的端口,QUIC协议的端口默认为443。
    • 服务器证书:使用在ELB服务中创建的证书。

      如果您没有可选择的ELB证书,可前往ELB服务创建,详情请参见创建证书

    • 后端协议:选择“HTTP”
    • 前端协议:“QUIC”
    • 对外端口:443
    • 服务器证书:cert-test
    • 后端协议:

      “HTTP”

    转发策略配置

    • 域名:实际访问的域名地址,不配置时可通过IP地址访问Ingress。请确保所填写的域名已注册并备案,一旦配置了域名规则后,必须使用域名访问。
    • 路径匹配规则:支持前缀匹配精确匹配正则匹配,请按需选择。
    • 路径:后端应用对外提供访问的路径,此处添加的访问路径要求后端应用内存在相同的路径,否则转发无法生效。
    • 目标服务名称:请选择已有Service,页面列表中的查询结果已自动过滤不符合要求的Service。如果没有满足要求的Service请根据Ingress支持的Service类型新建。
    • 目标服务访问端口:可选择目标Service的访问端口。
    • (可选)负载均衡配置:可设置健康检查协议为GRPC。单击转发策略中的“更改配置”,启用健康检查,并选择GRPC协议。
    • 域名:无需填写
    • 路径匹配规则:前缀匹配
    • 路径:/
    • 目标服务名称:nginx
    • 目标服务访问端口:80
    图1 配置QUIC监听器

  4. 配置完成后,单击“创建”
  1. 请参见通过kubectl连接集群,使用kubectl连接集群。
  2. 创建名为“ingress-test.yaml”的YAML文件,此处文件名可自定义。

    vi ingress-test.yaml

    以关联已有ELB为例,YAML配置文件如下:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-test
      namespace: default
      annotations:
        kubernetes.io/elb.port: '443'
        kubernetes.io/elb.id: <your_elb_id>    #本示例中使用已有的独享型ELB,请替换为您的独享型ELB ID
        kubernetes.io/elb.class: performance
        kubernetes.io/elb.protocol: QUIC  # ELB监听器前端协议设置为QUIC
        kubernetes.io/elb.tls-certificate-ids: 058cc023690d48a3867ad69dbe9cd6e5 # 服务器证书
        kubernetes.io/elb.pool-protocol: https  # 对接HTTPS协议的后端服务
    spec:
      rules:
        - host: ''
          http:
            paths:
              - path: '/'
                backend:
                  service:
                    name: <your_service_name>  #替换为您的目标服务名称
                    port:
                      number: 80
                property:
                  ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
                pathType: ImplementationSpecific
      ingressClassName: cce

    表2 关键参数说明

    参数

    参数类型

    描述

    kubernetes.io/elb.protocol

    String

    ELB监听器前端协议,配置QUIC前端协议时必须指定为QUIC。

    kubernetes.io/elb.tls-certificate-ids

    String

    ELB服务中的证书ID列表,不同ID间使用英文逗号隔开,列表长度大于等于1。列表中的首个ID为服务器证书,其余ID为SNI证书(SNI证书中必须带有域名)。

    如果无法根据客户端请求的域名查找到对应的SNI证书,则默认返回服务器证书。

    获取方法:在CCE控制台,单击顶部的“服务列表 > 网络 > 弹性负载均衡”,并选择“证书管理”。在列表中复制对应证书名称下的ID即可。

    kubernetes.io/elb.pool-protocol

    String

    后端服务所使用的协议,当监听器前端协议为QUIC时,后端协议只支持http/https。未指定该字段时,默认为http协议。

  3. 创建Ingress。

    kubectl create -f ingress-test.yaml

    回显如下,表示Ingress服务已创建。

    ingress/ingress-test created

  4. 查看已创建的Ingress。

    kubectl get ingress

    回显如下,表示Ingress服务创建成功。

    NAME          CLASS    HOSTS     ADDRESS          PORTS   AGE
    ingress-test  cce      *         121.**.**.**     80,443  10s

相关文档