Todos os produtos
Search
Central de documentação

Container Compute Service:Use QUIC listeners to support HTTP/3

Última atualização: Aug 28, 2026

Crie um listener QUIC em uma instância de Application Load Balancer (ALB) para que clientes compatíveis acessem seus Services via HTTP/3. O HTTP/3 é ideal para cenários com ambientes de rede complexos, largura de banda flutuante e requisitos rigorosos de latência, como redes móveis, jogos online e streaming de vídeo ao vivo, pois reduz retransmissões de dados e a latência de comunicação.

Como funciona

O QUIC é um protocolo de transporte baseado em UDP e serve como base para o HTTP/3. Ele oferece suporte a multiplexação, handshakes 0-RTT, algoritmos eficientes de controle de congestionamento e migração de conexão sem interrupções. Em comparação com o HTTP/2, que opera sobre TLS e TCP, o HTTP/3 sobre QUIC reduz significativamente as retransmissões de dados e a latência de comunicação. Para mais informações sobre o QUIC, consulte a documentação oficial do QUIC.

  • Apenas listener QUIC — Após a criação de um listener QUIC, a instância ALB permite que os clientes acessem os Services via HTTP/3.

  • Listener QUIC com um listener HTTPS — Caso alguns clientes precisem acessar os Services via HTTP/1.1 ou HTTP/2, utilize um listener QUIC em conjunto com um listener HTTPS para garantir compatibilidade com múltiplos protocolos HTTP.

    Quando ambos os listeners estão em uso, a instância ALB opera no modo ilustrado na figura a seguir. O listener QUIC e o listener HTTPS escutam na mesma porta e utilizam o mesmo conjunto de regras de encaminhamento. Ao receber solicitações de clientes, a instância ALB prioriza o listener QUIC para encaminhar as requisições aos Services de backend. Se um cliente não oferecer suporte a HTTP/3, a instância ALB encaminha as solicitações pelo listener HTTPS.

image

Pré-requisitos

  • Um recurso AlbConfig foi criado. Para mais informações, consulte Get started with ALB Ingress.

  • Um Ingress foi criado para o Service que você deseja expor por meio do ALB Ingress.

  • Um certificado está disponível para os listeners. Os exemplos neste tópico especificam o certificado por ID no AlbConfig. Listeners QUIC também oferecem suporte a certificados descobertos automaticamente e certificados Secret. Para mais informações, consulte Configure certificates for encrypted communication over HTTPS.

  • O kubectl está instalado e conectado ao cluster.

  • Uma versão do curl com suporte a HTTP/3 está disponível para verificação. Algumas compilações do curl não oferecem suporte a HTTP/3 por padrão.

Usar um listener QUIC independente

Utilize um listener QUIC independente quando todos os seus clientes oferecerem suporte a HTTP/3. Essa configuração declara um único listener QUIC no AlbConfig. Se alguns clientes acessarem os Services via HTTP/1.1 ou HTTP/2, use um listener QUIC em conjunto com um listener HTTPS, conforme descrito na seção a seguir.

Etapa 1: Criar um listener QUIC no AlbConfig

  1. Execute o comando a seguir para modificar o AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Replace <ALBCONFIG_NAME> with the name of the AlbConfig.
  2. Crie um listener QUIC.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        #...
      listeners:
        - port: 443
          protocol: QUIC # QUIC listener
          certificates:
          - CertificateId: 756****-cn-hangzhou # The CertIdentifier of the certificate
            IsDefault: true

Etapa 2: Verificar a configuração

Acesse o Service por meio do ALB Ingress via HTTP/3 para confirmar se o listener QUIC funciona conforme o esperado.

  1. Execute o comando a seguir para consultar o Ingress:

    kubectl get ingress

    Anote as colunas Record the HOSTS and ADDRESS columns of the output. e ADDRESS da saída.

  2. Execute o comando a seguir para acessar o Service via HTTP/3. Substitua demo.alb.ingress.top e alb-********.alb.aliyuncs.com pelos valores obtidos na etapa anterior.

    Nota

    Algumas compilações do curl não oferecem suporte a HTTP/3 por padrão. Utilize uma versão do curl com suporte a HTTP/3.

    curl --http3 -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com
    old

Usar listeners QUIC e HTTPS em conjunto

Utilize um listener QUIC junto com um listener HTTPS quando parte dos clientes acessar os Services via HTTP/1.1 ou HTTP/2. O AlbConfig nesta configuração declara ambos os listeners; portanto, não é necessário concluir primeiro a configuração do listener QUIC independente.

Etapa 1: Criar um listener QUIC e um listener HTTPS no AlbConfig

  1. Execute o comando a seguir para modificar o AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Replace <ALBCONFIG_NAME> with the name of the AlbConfig.
  2. Crie um listener QUIC e um listener HTTPS na mesma porta e adicione o campo quicConfig ao listener HTTPS.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        #...
      listeners:
        - port: 443
          protocol: QUIC # QUIC listener
          certificates:
          - CertificateId: 756****-cn-hangzhou # The CertIdentifier of the certificate
            IsDefault: true
        - port: 443
          protocol: HTTPS # HTTPS listener
          certificates:
          - CertificateId: 756****-cn-hangzhou # The CertIdentifier of the certificate
            IsDefault: true
          quicConfig:
            quicListenerId: "" # Leave this field blank for now. You specify the value in Step 3.
            quicUpgradeEnabled: false # Set the value to false.

Etapa 2: Adicionar uma annotation ao Ingress

Adicione uma annotation ao recurso Ingress para que ele se aplique a múltiplos listeners.

  1. Execute o comando a seguir para editar o Ingress:

    kubectl edit ingress quic-ingress # Replace quic-ingress with the name of the Ingress.
  2. Adicione o campo annotations ao Ingress.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: #...
      annotations:
        alb.ingress.kubernetes.io/listen-ports: '[{"QUIC": 443},{"HTTPS": 443}]' # This annotation is required when you use multiple listeners to ensure that ALB Ingress works as expected.
    spec:
      #...

Etapa 3: Associar os listeners

Associe o listener QUIC ao listener HTTPS e confirme no console ALB que a associação foi aplicada.

  1. Faça login no console ALB.

  2. Na página Instances, clique em ID da instância ALB desejada. Na aba Listener, localize o listener cujo Listener Protocol/Port seja QUIC:443 e anote o ID desse listener.

  3. Especifique o ID do listener QUIC no AlbConfig.

    1. Execute o comando a seguir para modificar o AlbConfig:

      kubectl edit albconfig <ALBCONFIG_NAME> # Replace <ALBCONFIG_NAME> with the name of the AlbConfig.
    2. Informe o ID do listener QUIC no campo quicListenerId e altere o valor do campo quicUpgradeEnabled para true.

      apiVersion: alibabacloud.com/v1
      kind: AlbConfig
      metadata:
        name: alb
      spec:
        config:
          #...
        listeners:
          - port: 443
            protocol: HTTPS
            certificates:
            - CertificateId: 756****-cn-hangzhou
              IsDefault: true 
            quicConfig: 
              quicListenerId: lsn-tnz740dr8p5h65**** # The listener ID of the specific QUIC listener.
              quicUpgradeEnabled: true # Change the value to true.
          - port: 443
            protocol: QUIC # QUIC listener
            certificates:
            - CertificateId: 756****-cn-hangzhou
              IsDefault: true
  4. Confirme que os listeners estão associados.

    1. Faça login no console ALB.

    2. Na página Instances, clique em ID da instância ALB desejada. Na página de detalhes da instância, clique em aba Listener. Na lista de listeners, clique em nome do listener HTTPS alvo. Na aba Listener Details, visualize o listener QUIC associado.

Etapa 4: Verificar a configuração

A Etapa 3 confirma a associação no console ALB. Nesta etapa, você acessa o Service por meio do ALB Ingress a partir de um cliente para validar se a instância ALB atende solicitações tanto via HTTP/3 quanto HTTPS.

  1. Execute o comando a seguir para consultar o Ingress:

    kubectl get ingress

    Anote as colunas HOSTS e ADDRESS da saída.

  2. Execute o comando a seguir para acessar o Service via HTTP/3. Substitua demo.alb.ingress.top e alb-********.alb.aliyuncs.com pelos valores obtidos na etapa anterior.

    Nota

    Algumas compilações do curl não oferecem suporte a HTTP/3 por padrão. Utilize uma versão do curl com suporte a HTTP/3.

    curl --http3 -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com
    old
  3. Execute o comando a seguir para acessar o Service via HTTPS tradicional. Substitua demo.alb.ingress.top e alb-********.alb.aliyuncs.com pelos mesmos valores.

    curl -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.com
    old

(Opcional) Etapa 5: Remover a associação

Remova a associação quando o listener HTTPS não precisar mais operar em conjunto com o listener QUIC. Os demais campos no AlbConfig permanecem inalterados.

  1. Execute o comando a seguir para modificar o AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Replace <ALBCONFIG_NAME> with the name of the AlbConfig.
  2. Limpe o campo quicListenerId, altere o valor do campo quicUpgradeEnabled para false, salve a alteração e saia.

    # The preceding content is omitted.
        - port: 443
          protocol: HTTPS
          quicConfig:
            quicListenerId: "" # Clear the listener ID of the QUIC listener.
            quicUpgradeEnabled: false # Change the value to false.
          requestTimeout: 0
    # The following content is omitted.

Referências