Di lingkungan microservice berskala besar, Anda dapat mengaktifkan fitur Multi-Buffer untuk mempercepat pemrosesan Transport Layer Security (TLS) oleh proxy Envoy. Fitur ini secara efisien menangani volume tinggi permintaan HTTPS konkuren dengan mempercepat enkripsi dan dekripsi paket data, mengurangi latensi jaringan, serta meningkatkan throughput dan keamanan sistem.
Prasyarat
Anda telah membuat instans ASM Edisi Perusahaan atau Edisi Ultimate versi 1.10 atau yang lebih baru. Untuk petunjuknya, lihat Buat instans ASM.
Anda telah membuat kluster ACK. Node dalam kluster tersebut harus menggunakan keluarga instans berbasis arsitektur CPU Intel Ice Lake, yang mendukung Multi-Buffer. Untuk petunjuknya, lihat Buat kluster ACK yang dikelola.
Informasi latar belakang
Saat teknologi keamanan jaringan berkembang, TLS telah menjadi fondasi komunikasi jaringan. Sesi TLS melibatkan dua fase utama: handshake dan transfer data. Selama handshake, enkripsi asimetris digunakan untuk menegosiasikan kunci sesi bersama. Selama transfer data, enkripsi simetris kemudian menggunakan kunci ini untuk mengamankan data yang dikirim.
Dalam arsitektur microservice, Envoy berperan sebagai gerbang masuk (ingress gateway) sekaligus proxy sidecar, memproses volume besar permintaan TLS. Kriptografi asimetris yang dibutuhkan selama fase handshake sangat intensif CPU dan dapat menjadi bottleneck performa dalam penerapan berskala besar. ASM terintegrasi dengan teknologi Multi-Buffer dari Intel untuk mempercepat pemrosesan TLS di Envoy.
Teknologi Multi-Buffer menggunakan set instruksi AVX-512 CPU Intel untuk memproses beberapa buffer kriptografi independen secara simultan. Hal ini memungkinkan beberapa operasi enkripsi dan dekripsi diselesaikan dalam satu siklus eksekusi, sehingga secara signifikan meningkatkan efisiensi. Fitur ini tidak memerlukan perangkat keras tambahan, hanya CPU dengan set instruksi tertentu. Prosesor Ice Lake Alibaba Cloud dilengkapi dengan set instruksi AVX-512 terbaru.
Prosedur
Metode 1: Aktifkan secara global
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
Pada halaman Base Information, klik Settings di sebelah kanan.
Di panel Settings Update, pilih Enable MultiBuffer-based TLS encryption and decryption performance optimization lalu klik OK.
Jika Anda menggunakan node dari keluarga instans tujuan umum g7, mengaktifkan Multi-Buffer dapat meningkatkan query per second (QPS) hingga 75%. Jika Anda menggunakan node ECS Bare Metal Instance, peningkatan performanya bahkan lebih besar.
Metode 2: Aktifkan di tingkat gerbang
Untuk gerbang ASM baru
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
Pada halaman Ingress Gateway, klik Create. Di bagian Advanced Options pada halaman Create, pilih TLS performance optimization, konfigurasikan pengaturan terkait, lalu klik Create.
Untuk informasi lebih lanjut mengenai parameter, lihat Buat gerbang masuk.
Parameter
Deskripsi
supported nodeaffinity
Memilih node untuk optimasi performa berdasarkan label node.
Poll Delay(ms)
Anda biasanya tidak perlu menyesuaikan parameter ini.
Multi-Buffer memproses beberapa operasi kriptografi dalam batch. Misalnya, jika dikonfigurasi untuk memproses batch delapan operasi, ia akan menunggu hingga delapan permintaan masuk antrian sebelum dieksekusi. Jika volume permintaan tinggi, batch akan cepat terisi. Jika volumenya rendah, waktu tunggunya bisa lama. Menetapkan poll delay memaksa Multi-Buffer untuk memproses permintaan yang sedang dalam antrian meskipun batch belum penuh, sehingga mengurangi waktu tunggu untuk trafik volume rendah.
Untuk gerbang ASM yang sudah ada
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
Untuk informasi lebih lanjut mengenai parameter, lihat Buat gerbang masuk.
Pada halaman Ingress Gateway, klik nama gerbang target. Pada halaman , temukan bagian Advanced Options. Klik ikon
di samping Performance Optimization, pilih TLS performance optimization, konfigurasikan parameter, lalu klik Submit.Parameter
Deskripsi
supported nodeaffinity
Memilih node untuk optimasi performa berdasarkan label node.
Poll Delay(ms)
Anda biasanya tidak perlu menyesuaikan parameter ini.
Multi-Buffer memproses beberapa operasi kriptografi dalam batch. Misalnya, jika dikonfigurasi untuk memproses batch delapan operasi, ia akan menunggu hingga delapan permintaan masuk antrian sebelum dieksekusi. Jika volume permintaan tinggi, batch akan cepat terisi. Jika volumenya rendah, waktu tunggunya bisa lama. Menetapkan poll delay memaksa Multi-Buffer untuk memproses permintaan yang sedang dalam antrian meskipun batch belum penuh, sehingga mengurangi waktu tunggu untuk trafik volume rendah.
Metode 3: Aktifkan di tingkat pod
Metode ini memerlukan ASM versi 1.14.3 atau yang lebih baru. Untuk meningkatkan instans Anda, lihat Tingkatkan instans ASM.
Pastikan pod dijadwalkan ke node yang mendukung Multi-Buffer.
Tambahkan anotasi khusus ke pod tersebut.
Berikut adalah contoh anotasi:
proxy.istio.io/config: | privateKeyProvider: cryptomb: pollDelay: 10msMulai ulang pod untuk menerapkan perubahan.
FAQ
Apa yang terjadi jika multi-buffer diaktifkan pada node yang tidak didukung?
Proxy Envoy mencatat peringatan, dan fitur Multi-Buffer tidak akan berlaku.
2021-11-09T15:24:03.269127Z info sds service generate, Multibuffer enable: true
2021-11-09T15:24:03.269158Z info cache returned workload trust anchor from cache ttl=23h59m59.730845791s
2021-11-09T15:24:03.269177Z info proxyConfig: config_path:"/etc/istio/proxy" binary_path:"/usr/local/bin/envoy" service_cluster:"istio-ingressgateway" drain_duration:<seconds:45 > parent_shutdown_duration:<seconds:60 > discovery_address:"istiod.istio-system.svc:15012" proxy_admin_port:15000 control_plane_auth_policy:MUTUAL_TLS stat_name_length:189 concurrency:<> tracing:<zipkin:<address:"zipkin.istio-system:9411" > > proxy_metadata:<key:"DNS_AGENT" value:"" > status_port:15020 termination_drain_duration:<seconds:5 > multi_buffer:<enabled:true poll_delay:<nanos:20000000 > >
2021-11-09T15:24:03.269185Z info sds service generate, Multibuffer enable: true
2021-11-09T15:24:03.269211Z info cache returned workload certificate from cache ttl=23h59m59.730792927s
2021-11-09T15:24:03.269223Z info pollDelay config: 20ms
2021-11-09T15:24:03.269456Z info sds SDS: PUSH resource=ROOTCA
2021-11-09T15:24:03.269589Z info sds SDS: PUSH resource=default
2021-11-09T15:24:03.270330Z warning envoy config gRPC config for type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret rejected: Multi-buffer CPU instructions not available.
2021-11-09T15:24:03.271696Z warn ads ADS:SDS: ACK ERROR router~172.18.96.137~istio-ingressgateway1-d7447cb55-khr8s.istio-system~istio-system.svc.cluster.local-2 Internal:Multi-buffer CPU instructions not available.
2021-11-09T15:24:04.309379Z info Initialization took 1.267025329s
2021-11-09T15:24:04.309416Z info Envoy proxy is ready
2021-11-09T15:24:04.458149Z warning envoy config gRPC config for type.googleapis.com/envoy.config.cluster.v3.Cluster rejected: Error adding/updating cluster(s) outbound|15021||istio-ingressgateway1.istio-system.svc.cluster.local: Multi-buffer CPU instructions not available., outbound|80||istio-ingressgateway1.istio-system.svc.cluster.local: Multi-buffer CPU instructions not available., outbound|443||istio-ingressgateway1.istio-system.svc.cluster.local: Multi-buffer CPU instructions not available.Instans ASM Edisi Perusahaan dan Edisi Ultimate versi 1.10 atau yang lebih baru menyediakan pemeriksaan adaptif untuk fitur ini. Jika pod layanan atau gerbang dijadwalkan ke node yang bukan model Intel Ice Lake, lapisan kontrol tidak akan mendorong konfigurasi akselerasi, dan akselerasi TLS tetap dinonaktifkan untuk pod tersebut.
Bagaimana cara menambahkan dan mengaktifkan multi-buffer pada node?
Tambahkan node baru ke kluster Kubernetes Anda. Node tersebut harus menggunakan instans dari keluarga instans berbasis arsitektur CPU Intel Ice Lake. Untuk petunjuknya, lihat Tambahkan node yang sudah ada.
Tetapkan label
multibuffer-support:truepada node yang baru ditambahkan. Untuk informasi lebih lanjut, lihat Kelola label dan taint node.Tambahkan konfigurasi YAML berikut ke definisi gerbang ASM Anda. Untuk petunjuknya, lihat Bidang CRD untuk gerbang ASM.
Konfigurasi ini menambahkan afinitas node untuk memastikan instans gerbang dijadwalkan ke node baru 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 untuk instans ASM Edisi Perusahaan atau Edisi Ultimate Anda. Untuk petunjuknya, lihat prosedur yang dijelaskan sebelumnya dalam topik ini.
Setelah Anda mengaktifkan fitur tersebut, node baru dapat menggunakan Multi-Buffer untuk mempercepat pemrosesan TLS.
Dokumen terkait
ASM menyediakan fitur seperti pembatasan cakupan penemuan layanan, rekomendasi resource sidecar, dan optimasi push konfigurasi adaptif. Fitur-fitur ini mengoptimalkan efisiensi push konfigurasi lapisan kontrol dan mengurangi ukuran konfigurasi sidecar. Untuk informasi lebih lanjut, lihat Ikhtisar optimasi push konfigurasi.