Hampir tidak ada informasi sistematis tentang NSX ALB dalam bahasa Rusia di jaringan, hanya dokumentasi dari vendor dalam bahasa Inggris. Oleh karena itu, di bagian pertama, saya merangkum sumber yang berbeda dan membuat gambaran umum tentang produk: Saya memberi tahu tentang fitur, arsitektur, dan logika pekerjaan, termasuk untuk situs yang tersebar secara geografis. Di bagian kedua, saya akan menjelaskan cara menerapkan dan mengkonfigurasi sistem. Semoga kedua artikel ini bermanfaat bagi mereka yang mencari penyeimbang untuk lingkungan cloud dan ingin menilai kapabilitas NSX ALB dengan cepat.
Fitur dan kapabilitas
NSX ALB adalah Software Defined Load Balancer (SDLB) tingkat Perusahaan. Ini tidak umum untuk sistem penyeimbang beban dari jenis yang biasanya menggunakan penyeimbang beban perangkat keras. Pendekatan untuk membangun sistem ini memberi NSX ALB pengelolaan yang mudah serta skalabilitas horizontal dan vertikal.
Fitur apa saja yang disediakan NSX ALB:
- Kontrol daya otomatis penyeimbang. Ketika beban dari klien meningkat, daya secara otomatis meningkat, ketika beban berkurang, itu turun.
- Load balancing di server yang tersebar secara geografis. Mekanisme Global Server Load Balancing (GSLB) terpisah bertanggung jawab untuk ini.
- Menyeimbangkan di salah satu level: L4 (melalui TCP / UDP) dan L7 (melalui HTTP / HTTPS).
- . NSX ALB ( VMware) on-premise :
- Kecerdasan Aplikasi Bawaan. Sistem memantau kinerja aplikasi dan mengumpulkan data: waktu untuk setiap tahap pemrosesan koneksi, penilaian status aplikasi dan log lalu lintas secara real time. Jika ada masalah, pemantauan dapat dengan cepat menentukan di mana mencarinya.
Data waktu nyata dikumpulkan pada koneksi yang terbuka secara bersamaan, waktu perjalanan pulang pergi (RTT), throughput, kesalahan, penundaan respons, penundaan jabat tangan SSL, jenis respons, dan banyak lagi. Semua informasi di satu tempat:
Di blok Analisis Log di sebelah kanan, statistik pada parameter koneksi utama dikumpulkan. Anda dapat mengarahkan mouse ke bagian yang diinginkan dan dengan cepat membiasakan diri.
Selain itu, NSX ALB memiliki:
- Dukungan untuk multi-tenancy untuk membedakan akses ke resource.
- Health Monitor .
- Web Application Firewall (WAF).
- IPAM DNS.
- , . . IP-, . : Botnet, DoS, Mobile threats, Phishing, Proxy, Scanner, Spam source, Web attacks, Windows exploit .., – .
- Parsing header HTTP dari paket yang lewat. Anda dapat menggunakan skrip (DataScript) berdasarkan bahasa Lua dan menentukan tindakan Avi tergantung pada nilai di header ini: mengalihkan permintaan, menutup atau menyetel ulang koneksi, memalsukan URI atau nilai dalam header HTTP, memilih kumpulan server tertentu untuk memproses permintaan, bekerja dengan cookie dll.
- Bertindak sebagai pengontrol Ingress untuk Kubernetes.
NSX ALB dapat dikelola melalui GUI, CLI dan REST API.
Arsitektur dan skema kerja NSX ALB
NSX ALB bekerja sesuai dengan prinsip standar untuk sebagian besar SDLB. Server yang menyediakan layanan balancing digabungkan menjadi beberapa kumpulan . Di atas kolam, administrator sistem membuat layanan virtual (VS) . Mereka berisi parameter layanan yang sedang diseimbangkan, misalnya: jenis aplikasi, algoritma penyeimbangan, pengaturan koneksi. VS juga menyediakan klien dengan alamat IP virtual eksternal (Virtual IP, VIP) untuk mengakses layanan yang seimbang.
Mari kita lihat lebih dekat seperti apa arsitekturnya:
Elemen kunci dari sistem ini adalah controller (Avi Controller)... Dia bertanggung jawab atas peningkatan daya otomatis dan secara terpusat mengontrol VS. Anda dapat menerapkan satu pengontrol atau sekumpulan pengontrol failover di infrastruktur Anda.
Dalam konfigurasi failover, cluster pengontrol terdiri dari 3 node. Salah satu node menjadi pemimpin, pengikut lainnya. Ketiga node aktif dan berbagi beban di antara mereka sendiri. Skenario utama untuk sekelompok pengontrol:
- jika satu node gagal, ini tidak mempengaruhi pengoperasian cluster;
- jika simpul utama gagal, peran ini ditransfer ke salah satu yang tersisa;
- jika 2 node gagal, layanan pengontrol pada node yang tersisa beralih ke mode hanya-baca untuk menghindari otak terbelah dan menunggu node lain tersedia lagi.
Setelah menerapkan pengontrol, insinyur membuat VS dan kumpulan server untuk setiap VS. Untuk server di dalam kumpulan, Anda dapat memilih algoritme penyeimbang :
- Round Robin - koneksi baru akan pergi ke server berikutnya di pool.
- Least Connections - koneksi baru akan masuk ke server dengan koneksi bersamaan paling sedikit.
- Least Load - koneksi baru akan masuk ke server dengan beban paling sedikit berapa pun jumlah koneksi.
- Hash yang Konsisten - Koneksi baru didistribusikan ke seluruh server berdasarkan hash yang dihitung. Kunci untuk menghitung hash ditentukan dalam bidang khusus atau dalam string khusus. Untuk setiap permintaan, hash dihitung menggunakan kunci ini. Sambungan dikirim ke server yang sesuai dengan hash yang dihitung.
- Fastest Response – .
- Fewest Tasks – ( Avi CLI REST API.
- Fewest Servers – , .
Setelah membuat VS dan kumpulan server, pengontrol itu sendiri menyebarkan mesin virtual layanan, Mesin Layanan (SE) , tempat layanan seimbang berada. Setiap layanan (VS) didistribusikan di beberapa SE yang memproses permintaan klien secara paralel. Ini memastikan ketahanan layanan jika terjadi kegagalan mesin virtual.
Pengontrol dapat mengevaluasi beban dan menambahkan SE baru atau menghapus yang dibongkar. Karena arsitektur ini, NSX ALB dapat menskalakan secara horizontal - meningkatkan jumlah UK, dan secara vertikal - meningkatkan kapasitas setiap SE.
Semakin banyak layanan yang diseimbangkan SE, semakin banyak antarmuka jaringan yang digunakan. Dalam diagram detail di bawah ini, kami melihat 2 jenis jaringan:
- jaringan untuk kontrol dan transmisi informasi layanan membentuk Control Plane ,
- jaringan data membentuk Data Plane .
Setiap SE memiliki antarmuka jaringan terpisah pada jaringan kontrol untuk komunikasi dengan pengontrol. Antarmuka lainnya terhubung ke jaringan eksternal dan jaringan tempat kumpulan server untuk penyeimbangan berada. Pemisahan infrastruktur jaringan ini meningkatkan keamanan.
Untuk setiap VS, Anda perlu menentukan parameter SE tempat layanan akan dihosting. Parameter ini ditetapkan dalam SE Group (SE Group) . Saat membuat VS, kami memilih grup SE: Anda dapat menentukan grup default (Grup Default) atau membuat grup baru jika VS memerlukan pengaturan khusus untuk mesin virtual.
Grup yang dipilih akan menentukan bagaimana VS baru akan ditempatkan. Misalnya, jika SE dari grup default sudah digunakan dalam sistem dan SE ini masih memiliki sumber daya, maka VS baru dengan grup default yang ditentukan akan ditempatkan di sana. Jika kita menentukan grup baru untuk VS, SE baru dengan parameter berbeda akan ditempatkan di bawahnya.
Di tingkat grup SE, tetapkan pengaturan penempatan VS berikut:
- jumlah maksimal SE dalam sebuah grup,
- jumlah VS maksimum per SE,
- cara menempatkan VS pada SE: Compact, ketika pertama kali kita mengisi SE pertama sekencang mungkin dan beralih ke yang berikutnya, atau Didistribusikan dengan distribusi seragam:
- Parameter mesin virtual SE: nomor vCPU, memori dan ukuran disk,
Throughput per 1 vCPU kira-kira 40 ribu koneksi / dtk, dengan rata-rata 4 GB / dtk. Indikator ini berbeda untuk level balancing yang berbeda dan protokol yang digunakan: lebih pada L4, lebih sedikit pada L7 karena kebutuhan untuk menganalisis lalu lintas, dengan SSL jauh lebih sedikit, karena kebutuhan untuk enkripsi.
- seumur hidup SE yang tidak digunakan, setelah itu harus dihapus,
- sumber daya untuk menjadi tuan rumah SE. Dalam lingkungan VMware, Anda dapat menentukan atau mengecualikan cluster atau host tertentu dan datastore untuk digunakan.
Mari beralih ke arsitektur dan alur kerja layanan keseimbangan global GSLB.
Arsitektur dan alur kerja untuk server yang tersebar secara geografis
Dalam layanan virtual biasa, kami dapat menambahkan server ke kumpulan hanya dari satu cloud. Bahkan jika kami menambahkan beberapa cloud pada pengontrol pada saat yang sama, kami tidak akan dapat menggabungkan server dari cloud yang berbeda dalam satu VS. Layanan keseimbangan global GSLB memecahkan masalah ini. Ini memungkinkan Anda untuk menyeimbangkan server yang tersebar secara geografis yang terletak di cloud yang berbeda.
Dalam satu layanan global, Anda dapat menggunakan cloud pribadi dan publik secara bersamaan. Berikut adalah kasus ketika Anda mungkin membutuhkan GSLB:
- ketersediaan layanan tinggi jika semua server di salah satu awan tidak tersedia,
- pemulihan bencana jika satu awan sama sekali tidak dapat diakses,
- , , . .
Mari kita lihat arsitektur GSLB:
Skema kerja singkatnya: penyeimbangan dilakukan oleh layanan DNS lokal yang ditempatkan di dalam NSX ALB. Klien mengirimkan permintaan untuk menyambung ke layanan menggunakan nama FQDN. DNS memberi klien IP virtual dari VS lokal di cloud yang paling optimal. Layanan memilih cloud paling optimal berdasarkan algoritme penyeimbang, data ketersediaan VS lokal di Monitor Kesehatan, dan lokasi geografis klien. Anda dapat menyetel algoritme penyeimbang yang berbeda - di tingkat layanan global dan di tingkat GSLB.
Seperti yang Anda lihat dari diagram GSLB, ini didasarkan pada elemen-elemen dari diagram sebelumnya: kumpulan server, di atasnya layanan virtual lokal (VS) dengan IP virtual lokal (VIP) dan mesin virtual layanan (SE). Elemen baru muncul saat membangun GSLB.
Layanan global (VS global) - layanan yang seimbang antara server yang tersebar secara geografis atau awan pribadi dan publik.
Situs GSLB mencakup pengontrol dan SE yang dikelola olehnya, yang terletak di cloud yang sama. Untuk setiap situs, Anda dapat mengatur geolokasi dalam lintang dan bujur. Ini akan memungkinkan GSLB untuk memilih kumpulan server berdasarkan jarak dari klien.
Situs GSLB yang berbasis pada sistem ALB NSX dibagi menjadi pemimpin (leader) dan pengikut (followers). Seperti dalam kasus pengontrol, skema ini memberikan toleransi kesalahan untuk layanan GSLB.
Situs utama membuat keputusan keseimbangan, menangani koneksi, dan monitor. Anda hanya dapat mengubah konfigurasi GSLB dari pengontrol situs master.
Situs budak bisa aktif atau pasif.
- Situs budak pasif hanya menangani koneksi klien yang masuk jika situs master memilih VS lokalnya.
- Situs budak aktif menerima konfigurasinya dari situs master dan, jika macet, dapat mengambil alih peran utama.
Situs GSLB juga bisa menjadi situs Eksternal yang dibangun di atas penyeimbang pihak ketiga.
Pool global berbeda dari pool lokal, yang berisi server lokal. Dalam kumpulan global, Anda dapat menggabungkan layanan virtual yang tersebar secara geografis dari berbagai situs. Dengan kata lain, kumpulan global berisi VS lokal, yang ditetapkan di tingkat situs GSLB.
Menyeimbangkan koneksi antar server di kumpulan global dilakukan:
- dengan algoritma Round Robin,
- berdasarkan geolokasi server,
- ,
- Consistent Hash.
Untuk satu layanan global, Anda dapat membuat beberapa kumpulan global dan menyertakan satu atau lebih situs di setiap VS lokal. Dalam kasus ini, koneksi baru akan didistribusikan menurut geolokasi atau berdasarkan prioritas yang ditentukan. Untuk menetapkan prioritas untuk server di kumpulan, Anda dapat menetapkan bobot yang berbeda untuk masing-masing.
Contoh penyeimbangan antara kumpulan global . Beginilah cara VS global akan mendistribusikan koneksi dalam skema ini:
Pool GslbPool_3 memiliki prioritas 10 dan akan lebih disukai untuk koneksi klien. Dari hubungan ini, 40% beban akan dialihkan ke VS-B3 dan 60% ke VS-B4. Jika GslbPool_3 tidak tersedia, semua koneksi klien akan sepenuhnya masuk ke GslbPool_2, dan beban antara VS-B3 dan VS-B4 akan didistribusikan secara merata.
DNS Lokalberisi catatan dengan nama FQDN dari layanan yang diseimbangkan melaluinya.
GSLB DNS adalah mode operasi DNS VS lokal, yang digunakan untuk menyeimbangkan koneksi antara situs GSLB.
Local DNS VS mulai bertindak sebagai GSLB DNS saat kami memilihnya sebagai layanan DNS untuk GSLB yang dimunculkan. DNS VS semacam itu harus digunakan di semua situs yang termasuk dalam kumpulan global.
GSLB menambahkan data FQDN layanan global ke setiap DNS lokal. NSX ALB mengisi catatan ini dengan IP virtual VS lokal dari semua situs yang termasuk dalam kumpulan VS global. VIP tambahan ini ditambahkan secara otomatis dengan VS lokal baru ditambahkan ke pool. Data dalam catatan diperbarui sebagai informasi tentang beban layanan, ketersediaan server dan keterpencilan klien dari situs terakumulasi. Ketika klien baru terhubung menggunakan FQDN, salah satu DNS lokal mengeluarkan alamat VIP dari VS lokal, dengan mempertimbangkan data aktual yang terkumpul ini.
Bagaimana cara menyebarkan dan mengkonfigurasi sistem ALB NSX, serta meningkatkan layanan GSLB di dalamnya, akan saya jelaskan di bagian kedua artikel ini.