Untuk memproses sejumlah besar permintaan HTTPS secara cepat dan efisien dalam skenario mikroservis berskala besar, Anda dapat mengaktifkan multi-buffer guna mempercepat pemrosesan Transport Layer Security (TLS) di Envoy. Fitur ini membantu mempercepat enkripsi dan dekripsi paket data, mengurangi latensi jaringan, serta meningkatkan keamanan dan kemampuan sistem dalam menangani permintaan simultan.
Prasyarat
Instance Service Mesh (ASM) Edisi Enterprise atau Edisi Ultimate telah dibuat dengan versi 1.10 atau lebih baru. Untuk informasi lebih lanjut, lihat Buat instance ASM.
Kluster Container Service for Kubernetes (ACK) telah dibuat, dan node dalam kluster menggunakan CPU Intel Ice Lake yang mendukung fitur multi-buffer. Untuk informasi lebih lanjut, lihat Buat kluster ACK dikelola.
Informasi latar belakang
Dengan perkembangan teknologi keamanan jaringan, TLS menjadi fondasi utama komunikasi jaringan. Sesi TLS umumnya terbagi dalam dua fase: jabat tangan dan transmisi data. Fase jabat tangan melibatkan enkripsi asimetris untuk menegosiasikan kunci sesi, sedangkan fase transmisi data menggunakan kunci tersebut untuk melakukan enkripsi simetris pada data sebelum dikirim.
Dalam skenario mikroservis, Envoy perlu memproses sejumlah besar permintaan TLS, baik sebagai gateway ingress maupun proxy mikroservis. Terutama selama fase jabat tangan, enkripsi dan dekripsi asimetris membutuhkan sumber daya CPU yang signifikan, yang dapat menjadi hambatan dalam skenario berskala besar. ASM menggunakan multi-buffer Intel untuk mempercepat pemrosesan TLS di Envoy, sehingga mengurangi hambatan tersebut.
Multi-buffer memanfaatkan instruksi Intel CPU AVX-512 untuk memproses beberapa buffer independen secara bersamaan. Dengan kata lain, beberapa operasi enkripsi dan dekripsi dapat dieksekusi dalam satu siklus eksekusi, mempercepat proses enkripsi dan dekripsi. Multi-buffer tidak memerlukan perangkat keras tambahan, tetapi membutuhkan CPU yang mendukung set instruksi AVX-512. Alibaba Cloud menggunakan CPU Ice Lake yang mendukung set instruksi AVX-512 terbaru.
Prosedur
Metode 1: Aktifkan multi-buffer untuk instance ASM
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di pojok kanan atas halaman Base Information, klik Settings.
Di panel Settings Update, pilih Enable MultiBuffer-based TLS encryption and decryption performance optimization, lalu klik OK.
Jika node kluster termasuk dalam keluarga instans tujuan umum g7, multi-buffer meningkatkan performa query per second (QPS) hingga 75%. Jika node kluster berjalan di instance ECS bare metal, peningkatan performa akan lebih signifikan.
Metode 2: Aktifkan multi-buffer untuk gateway ingress
Aktifkan multi-buffer saat membuat gateway ingress
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Ingress Gateway, klik Create. Di bagian Advanced Options dari halaman Create, pilih Enable MultiBuffer-based TLS encryption and decryption performance optimization, konfigurasikan parameter, lalu klik Create.
Untuk detail parameter ini, lihat Buat gateway ingress.
Parameter
Deskripsi
supported nodeaffinity
Pilih label node tempat multi-buffer berlaku.
Poll Delay(ms)
Dalam kebanyakan kasus, Anda tidak perlu mengubah nilai parameter ini.
Multi-buffer mengenkripsi dan mendekripsi beberapa permintaan secara bersamaan. Misalnya, multi-buffer dapat mengenkripsi dan mendekripsi delapan permintaan secara bersamaan. Multi-buffer tidak mulai bekerja sampai menerima delapan permintaan. Jika jumlah permintaan besar, multi-buffer menerima delapan permintaan dalam waktu singkat. Namun, jika jumlah permintaan kecil, multi-buffer mungkin menunggu lama. Dalam hal ini, jika Anda menentukan penundaan polling, multi-buffer akan mengenkripsi dan mendekripsi permintaan yang ada setelah penundaan berakhir meskipun jumlah permintaan kurang dari delapan.
Aktifkan multi-buffer untuk gateway ingress yang sudah ada
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Gateway Ingress, klik nama gateway yang diinginkan. Pilih . Di bagian Advanced Options dari halaman yang muncul, klik ikon
di sebelah Performance Optimization, pilih Enable MultiBuffer-based TLS encryption and decryption performance optimization, konfigurasikan parameter, lalu klik Submit.Untuk detail parameter ini, lihat Buat gateway ingress.
Parameter
Deskripsi
supported nodeaffinity
Pilih label node tempat multi-buffer berlaku.
Poll Delay(ms)
Dalam kebanyakan kasus, Anda tidak perlu mengubah nilai parameter ini.
Multi-buffer mengenkripsi dan mendekripsi beberapa permintaan secara bersamaan. Misalnya, multi-buffer dapat mengenkripsi dan mendekripsi delapan permintaan secara bersamaan. Multi-buffer tidak mulai bekerja sampai menerima delapan permintaan. Jika jumlah permintaan besar, multi-buffer menerima delapan permintaan dalam waktu singkat. Namun, jika jumlah permintaan kecil, multi-buffer mungkin menunggu lama. Dalam hal ini, jika Anda menentukan penundaan polling, multi-buffer akan mengenkripsi dan mendekripsi permintaan yang ada setelah penundaan berakhir meskipun jumlah permintaan kurang dari delapan.
Metode 3: Aktifkan multi-buffer untuk pod
Untuk mengaktifkan multi-buffer untuk pod, versi instance ASM harus 1.14.3 atau lebih baru. Untuk informasi lebih lanjut tentang cara memperbarui instance ASM, lihat Perbarui instance ASM.
Pastikan bahwa pod akan dijadwalkan ke node yang mendukung multi-buffer.
Konfigurasikan anotasi khusus untuk pod.
Contoh anotasi:
proxy.istio.io/config: | privateKeyProvider: cryptomb: pollDelay: 10msMulai ulang pod agar konfigurasi berlaku.
FAQ
Apa yang terjadi jika multi-buffer diaktifkan di control plane, tetapi node di kluster Kubernetes data-plane tidak menggunakan Intel Ice Lake?
Log peringatan dihasilkan dari Envoy dan multi-buffer tidak berlaku.
Instance ASM bertipe Edisi Enterprise atau Edisi Ultimate dengan versi 1.10 atau lebih baru dapat secara otomatis menentukan apakah percepatan TLS berlaku ketika diaktifkan. Jika node tempat pod layanan atau gateway dijadwalkan tidak menggunakan Intel Ice Lake, ASM tidak memberikan konfigurasi percepatan yang sesuai ke node. Dalam hal ini, percepatan TLS tidak berlaku.
Bagaimana cara menambahkan node yang mendukung multi-buffer ke kluster Kubernetes dan mengaktifkan multi-buffer?
Tambahkan node yang menggunakan Intel Ice Lake ke kluster Kubernetes. Untuk informasi lebih lanjut, lihat Tambahkan instance ECS yang sudah ada.
Tambahkan label
multibuffer-support:trueke node yang baru ditambahkan. Untuk informasi lebih lanjut, lihat Kelola label node dan taints.Tambahkan konten berikut ke file YAML gateway ingress untuk menambahkan afinitas node. Untuk informasi lebih lanjut, lihat Bidang CRD untuk gateway ASM.
Setelah menambahkan afinitas node, pod gateway ingress akan dijadwalkan ke node yang baru ditambahkan yang mendukung multi-buffer.
affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: feature.node.kubernetes.io/mb-feature-enabled operator: In values: - 'true' weight: 1Aktifkan fitur multi-buffer di instance ASM Edisi Enterprise atau Edisi Ultimate Anda. Untuk informasi lebih lanjut, lihat bagian Metode 1: Aktifkan multi-buffer untuk instance ASM.
Setelah mengaktifkan multi-buffer untuk instance ASM, node yang baru ditambahkan dapat menggunakan multi-buffer untuk mempercepat pemrosesan TLS.
Referensi
ASM menyediakan fitur pemilihan penemuan layanan, rekomendasi sidecar, dan optimasi xDS adaptif untuk membantu meningkatkan efisiensi dorongan konfigurasi di control plane dan mengurangi ukuran konfigurasi sidecar. Untuk informasi lebih lanjut, lihat Ikhtisar optimasi dorongan konfigurasi.