Halo guys, Ridwan here..
Come again with new notes update!
Pada tulisan ini kita mau bahas MicroCloud lagi..
kita fokus pada Dashboard LXD dari Microcloud nya
Seperti yang kita ketahui untuk dashboard LXD running pada port 8443 pada semua node dari Microcloud
Ada Challenges..
Bagaimana cara akses dashboard tersebut menggunakan domain name saja, dan tampa port 8443.
Seperti ini "https://domain-name". Mungkin karena terinspirasi dari Openstack, dimana hanya perlu satu alamat Horizon.
Tapi.., IP Addr untuk akses LXD/MicroCloud dashboard ini merupakan IP Internal, kalau kita expose ke public untuk keperluan domain name, rasanya kurang tepat.
Kemudian bagaimana solusinya ? .
Logika sederhananya kita perlu Re-direct Request IP External ke IP Internal, dan dari https (port 443) ke LXD Dashboard (port 8443).
Artinya kita butuh service yang dapat melakukan re-direct tersebut.
Solusinya dengan menggunakan HAProxy kita bisa melakukannya !
Penasaran..Bagaimana Caranya Setup & Config nya?
Langsung saja kita coba !
1. Prerequisite
- Buat Satu Server untuk HAProxy (Di luar dari Cluster MicroCloud)
- Memiliki Interface jaringan yang terhubung dengan internal traffic Microcloud (Dalam hal ini 192.168.100.0/24)
- Install HAProxy
2. Install HAProxy
Untuk cara instalasi & config nya tidak ada yang spesial atau khusus, sama saja dengan instalasi HAProxy pada umum nya, Disini saya menggunakan Ubuntu Server. untuk melakukan install masukan command berikut :
$ sudo apt install haproxy -y
Pastikan proses instalasi berhasil dengan baik & benar.
Kemudian kita config HAProxy tersebut, dengan cara edit file "etc/haproxy/haproxy.cfg"
$ vim /etc/haproxy/haproxy.cfg
Berikut ada isi file haproxy.cfg yang saya gunakan,
kalian bisa pelajari, sesuaikan dengan kebutuhan dan keadaan kalian
Ok, perhatikan pada paramters
backend microcloud_backend
balance leastconn
Secara defautl metode balance yang digunakan adalah roundrobin.
Artinya setiap ada request yang masuk dari user, akan di teruskan secara random ke semua server microcloud, dan menurut ku ini kurang tepat.
Disini aku menggunakan metode Least-Connection (leastconn)
Algoritma ini bekerja dengan cara mengarahkan setiap permintaan klien yang baru ke server backend yang saat itu memiliki jumlah koneksi aktif paling sedikit. Untuk details nya, kalian bsa lihat document berikut :
https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/load_balancer_administration/ch-haproxy-setup-vsa#s1-lvs-sched-haproxy-VSA
Jika sudah selesai dengan haproxy.cfg, jangan lupa save & exit.
Laukan test & validasi config nya dengan command berikut :
$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
Kemudian reload service HAProxy, pastikan berjalan normal !Test the Result
Ok, sekarang kita coba akses IP Addr HAProxy tersebut pada port 443
Terlihat IP Addr (192.168.124.8) saat di akses, akan menampilkan dashboard Micrcoloud, dan terlihat bahwa IP Addr tersebut bukan milik dari Member Cluster MicroCloud, dan akses nya tampa menggunakan port 8443.
Kita memiliki local domain "portal.microcloud.lab" yang sudah di pointing ke IP Addr 192.168.124.8 .
Lakukan test ping dan test curl.
Hasilnya 200K !
03. Kesimpulan
Dengan bantuan HAProxy kita dapat melakukan re-direct request from external network to internal network, spesifik hanya ke port 8443 saja milik LXD Dashboard. Hal ini lebih disarankan dari pada meng'expose seluruh IP & Port milik node Microcloud ke external.
Kemudian, dengan metode / algorithms "Least-Connection" pada HAProxy, membuat load-balance yang sangat merata pada seluruh node, karena setiap ada request akses baru akan diarahkan ke node dengan status aktif yang sedikit.
Ok.
Thank you sudah membaca tulisan ini, Semoga bermanfaat !
Best Regards
Rdw