全部产品
Search
文档中心

Container Compute Service:Gunakan pendengar QUIC untuk mendukung HTTP/3 dan meningkatkan performa jaringan

更新时间:Jul 02, 2025

Anda dapat menggunakan QUIC dan mengaktifkan pendengaran QUIC pada server backend dalam skenario jaringan kompleks seperti jaringan seluler, jaringan dengan latensi rendah yang memerlukan penggunaan bandwidth fluktuatif, serta aplikasi sensitif terhadap latensi (game online atau streaming langsung). QUIC memungkinkan klien menggunakan HTTP/3 untuk meningkatkan stabilitas dan performa komunikasi jaringan.

Cara kerjanya

QUIC didasarkan pada UDP dan merupakan inti dari HTTP/3. Protokol ini mendukung multiplexing, handshake 0-RTT, algoritma pengendalian kemacetan, dan migrasi koneksi tanpa hambatan. Dibandingkan dengan HTTP/2 yang menggunakan TLS dan TCP, HTTP/3 berbasis QUIC dapat secara efisien mengurangi latensi retransmisi data dan komunikasi. Untuk informasi lebih lanjut tentang QUIC, lihat dokumentasi resmi QUIC.

  • Setelah Anda membuat pendengar QUIC untuk instance ALB, Anda dapat menggunakan klien untuk mengakses layanan backend melalui HTTP/3.

  • Jika beberapa klien perlu mengakses layanan melalui HTTP/1.1 atau HTTP/2, Anda dapat menggunakan QUIC bersama dengan pendengar HTTPS untuk memastikan kompatibilitas dengan berbagai protokol HTTP. Untuk menggunakan kombinasi pendengar QUIC dan HTTPS, instance ALB harus bekerja dalam mode berikut: Pendengar QUIC dan HTTPS mendengarkan pada port yang sama dan menggunakan aturan pengalihan yang sama. Setelah menerima permintaan, instance ALB lebih memilih menggunakan pendengar QUIC untuk meneruskan permintaan ke layanan backend. Jika klien tidak mendukung HTTP/3, instance ALB menggunakan pendengar HTTPS untuk meneruskan permintaan.

Prasyarat

Sebuah ALBConfig telah dibuat. Untuk informasi lebih lanjut, lihat Memulai dengan Ingress ALB.

Gunakan hanya pendengar QUIC

Langkah 1: Buat pendengar QUIC di ALBConfig

  1. Jalankan perintah berikut untuk memodifikasi AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.
  2. Buat pendengar QUIC.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        #...
      listeners:
        - port: 443
          protocol: QUIC # Pendengar QUIC.
          certificates:
          - CertificateId: 756****-cn-hangzhou # ID sertifikat.
            IsDefault: true 
    Penting

    Contoh sebelumnya menggunakan ALBConfig untuk mengonfigurasi sertifikat. Pendengar QUIC juga mendukung penemuan sertifikat otomatis atau Secret. Untuk informasi lebih lanjut, lihat Konfigurasikan sertifikat HTTPS untuk komunikasi terenkripsi.

Langkah 2: Verifikasi konfigurasi

  1. Jalankan perintah berikut untuk menanyakan Ingress:

    kubectl get ingress

    Keluaran yang diharapkan:

    NAME            CLASS                HOSTS                  ADDRESS                         PORTS     AGE
    https-ingress   https-ingressclass   demo.alb.ingress.top   alb-********.alb.aliyuncs.com   80, 443   83m

    Catat nilai-nilai di kolom HOSTS dan ADDRESS.

  2. Jalankan perintah berikut untuk menggunakan HTTP/3 dan metode tradisional untuk mengakses layanan HTTPS. Ganti demo.alb.ingress.top dan alb-********.alb.aliyuncs.com dengan nilai-nilai yang diperoleh pada langkah sebelumnya.

    Catatan

    Beberapa versi curl tidak mendukung HTTP/3. Gunakan versi curl yang mendukung HTTP/3.

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

    Jika keluaran berikut dikembalikan, pendengar QUIC telah dikonfigurasi:

    old

Gunakan kombinasi pendengar QUIC dan pendengar HTTPS

Langkah 1: Buat pendengar HTTPS

  1. Jalankan perintah berikut untuk memodifikasi AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.
  2. Buat pendengar HTTPS dan tambahkan bidang quicConfig.

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb
    spec:
      config:
        #...
      listeners:
        - port: 443
          protocol: QUIC # Pendengar QUIC.
          certificates:
          - CertificateId: 756****-cn-hangzhou # ID sertifikat.
            IsDefault: true
        - port: 443
          protocol: HTTPS # Pendengar HTTPS.
          certificates:
          - CertificateId: 756****-cn-hangzhou # ID sertifikat.
            IsDefault: true
          quicConfig:
            quicListenerId: "" # Biarkan kosong. Parameter ini akan ditentukan di langkah berikutnya.
            quicUpgradeEnabled: false # Atur ke false.
    Penting

    Contoh sebelumnya menggunakan ALBConfig untuk mengonfigurasi sertifikat. Pendengar QUIC juga mendukung penemuan sertifikat otomatis atau Secret.

Langkah 2: Tambahkan anotasi ke Ingress

Anda perlu menambahkan anotasi ke Ingress untuk memastikan bahwa Ingress melayani kedua pendengar.

  1. Jalankan perintah berikut untuk memodifikasi Ingress.

    kubectl edit ingress quic-ingress # Ganti quic-ingress dengan nama Ingress.
  2. Tambahkan annotations ke Ingress.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: #...
      annotations:
        alb.ingress.kubernetes.io/listen-ports: '[{"QUIC": 443},{"HTTPS": 443}]' # Saat menggunakan beberapa pendengar, Anda perlu menambahkan anotasi ke ALB Ingress.
    spec:
      #...

Langkah 3: Kaitkan pendengar

  1. Masuk ke Konsol ALB.

  2. Pada halaman Instances, klik ID instance ALB Anda. Pada tab Listener, temukan pendengar yang Listener Protocol/Port adalah QUIC:443 dan catat ID-nya.

  3. Tentukan ID di ALBConfig.

    1. Jalankan perintah berikut untuk memodifikasi AlbConfig:

      kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.
    2. Atur quicListenerId ke ID pendengar QUIC dan atur quicUpgradeEnabled ke 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**** # Tentukan ID pendengar QUIC. 
              quicUpgradeEnabled: true # Atur ke true.
          - port: 443
            protocol: QUIC # Pendengar QUIC.
            certificates:
            - CertificateId: 756****-cn-hangzhou
              IsDefault: true 
  4. Konfirmasi asosiasi pendengar.

    1. Masuk ke Konsol ALB.

    2. Pada halaman Instances, klik ID instance ALB yang ingin Anda kelola. Di halaman detail instance, klik tab Listener. Dalam daftar pendengar, klik nama pendengar HTTPS. Di halaman Listener Details, Anda dapat melihat pendengar QUIC yang terkait.

Langkah 4: Verifikasi konfigurasi

Gunakan HTTP/3 untuk mengakses layanan melalui ALB Ingress.

  1. Jalankan perintah berikut untuk menanyakan Ingress:

    kubectl get ingress

    Keluaran yang diharapkan:

    NAME            CLASS                HOSTS                  ADDRESS                         PORTS     AGE
    https-ingress   https-ingressclass   demo.alb.ingress.top   alb-********.alb.aliyuncs.com   80, 443   83m

    Catat nilai-nilai di kolom HOSTS dan ADDRESS.

  2. Jalankan perintah berikut untuk menggunakan HTTP/3 dan metode tradisional untuk mengakses layanan HTTPS. Ganti demo.alb.ingress.top dan alb-********.alb.aliyuncs.com dengan nilai-nilai yang diperoleh pada langkah sebelumnya.

    Catatan

    Beberapa versi curl tidak mendukung HTTP/3. Gunakan versi curl yang mendukung HTTP/3.

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

    Jika keluaran yang diharapkan adalah sebagai berikut, kedua pendengar terkait dan kompatibel dengan beberapa protokol HTTP:

    old
    old

Langkah 5: (Opsional) Hapus asosiasi

  1. Jalankan perintah berikut untuk memodifikasi AlbConfig:

    kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.
  2. Biarkan quicListenerId kosong dan atur quicUpgradeEnabled ke false.

    # Konten sebelumnya dihilangkan. 
        port: 443
        protocol: HTTPS
        quicConfig:
          quicListenerId: "" # Biarkan parameter ini kosong. 
          quicUpgradeEnabled: false # Atur ke false.
        requestTimeout: 0
    # Konten dihilangkan.

Referensi