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
Jalankan perintah berikut untuk memodifikasi AlbConfig:
kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.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: truePentingContoh 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
Jalankan perintah berikut untuk menanyakan Ingress:
kubectl get ingressKeluaran yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE https-ingress https-ingressclass demo.alb.ingress.top alb-********.alb.aliyuncs.com 80, 443 83mCatat nilai-nilai di kolom
HOSTSdanADDRESS.Jalankan perintah berikut untuk menggunakan HTTP/3 dan metode tradisional untuk mengakses layanan HTTPS. Ganti
demo.alb.ingress.topdanalb-********.alb.aliyuncs.comdengan nilai-nilai yang diperoleh pada langkah sebelumnya.CatatanBeberapa versi
curltidak mendukung HTTP/3. Gunakan versi curl yang mendukung HTTP/3.curl --http3 -H HOST:demo.alb.ingress.top -k https://alb-********.alb.aliyuncs.comJika keluaran berikut dikembalikan, pendengar QUIC telah dikonfigurasi:
old
Gunakan kombinasi pendengar QUIC dan pendengar HTTPS
Langkah 1: Buat pendengar HTTPS
Jalankan perintah berikut untuk memodifikasi AlbConfig:
kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.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.PentingContoh 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.
Jalankan perintah berikut untuk memodifikasi Ingress.
kubectl edit ingress quic-ingress # Ganti quic-ingress dengan nama Ingress.Tambahkan
annotationske 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
Masuk ke Konsol ALB.
Pada halaman Instances, klik ID instance ALB Anda. Pada tab Listener, temukan pendengar yang Listener Protocol/Port adalah QUIC:443 dan catat ID-nya.
Tentukan ID di ALBConfig.
Jalankan perintah berikut untuk memodifikasi AlbConfig:
kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.Atur
quicListenerIdke ID pendengar QUIC dan aturquicUpgradeEnabledketrue.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
Konfirmasi asosiasi pendengar.
Masuk ke Konsol ALB.
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.
Jalankan perintah berikut untuk menanyakan Ingress:
kubectl get ingressKeluaran yang diharapkan:
NAME CLASS HOSTS ADDRESS PORTS AGE https-ingress https-ingressclass demo.alb.ingress.top alb-********.alb.aliyuncs.com 80, 443 83mCatat nilai-nilai di kolom
HOSTSdanADDRESS.Jalankan perintah berikut untuk menggunakan HTTP/3 dan metode tradisional untuk mengakses layanan HTTPS. Ganti
demo.alb.ingress.topdanalb-********.alb.aliyuncs.comdengan nilai-nilai yang diperoleh pada langkah sebelumnya.CatatanBeberapa versi
curltidak 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.comJika keluaran yang diharapkan adalah sebagai berikut, kedua pendengar terkait dan kompatibel dengan beberapa protokol HTTP:
old old
Langkah 5: (Opsional) Hapus asosiasi
Jalankan perintah berikut untuk memodifikasi AlbConfig:
kubectl edit albconfig <ALBCONFIG_NAME> # Ganti <ALBCONFIG_NAME> dengan nama AlbConfig.Biarkan
quicListenerIdkosong dan aturquicUpgradeEnabledke false.# Konten sebelumnya dihilangkan. port: 443 protocol: HTTPS quicConfig: quicListenerId: "" # Biarkan parameter ini kosong. quicUpgradeEnabled: false # Atur ke false. requestTimeout: 0 # Konten dihilangkan.
Referensi
Jika layanan web Anda rentan terhadap intrusi, Anda dapat menggunakan instance ALB yang diaktifkan WAF. Untuk informasi lebih lanjut, lihat Gunakan instance ALB yang diaktifkan WAF untuk melindungi aplikasi.
Untuk informasi lebih lanjut tentang konfigurasi pendengar, lihat Gunakan AlbConfigs untuk mengonfigurasi pendengar ALB.