Apa itu penyeimbang beban ? Penyeimbang beban adalah cara yang efisien untuk mendistribusikan lalu lintas jaringan di antara berbagai server backend. Itu juga dikenal sebagai server farm atau server pool. Ini mendistribusikan permintaan klien atau beban jaringan ke server web target. Load balancer bekerja dengan konsep round-robin, yang memastikan keandalan dan ketersediaan yang tinggi.
Satu skenario
Anda memiliki server web yang dapat mengelola 100 klien sekaligus. Tiba-tiba permintaan ke server tertentu meningkat 100 persen. Kemungkinan situs web akan mogok atau dihentikan. Untuk menghindari situasi ini, siapkan server web target. Dalam skenario ini, klien tidak pernah pergi ke server web target. Sebaliknya, permintaan mereka pergi ke server master, dan server master mengirimkan permintaan ke server web target. Saat server web target membalas ke server web master, yang dikenal sebagai proxy terbalik.
[ Anda mungkin juga menyukai: Mengubah penerapan Kubernetes menjadi layanan Knative ]
Menggunakan HAProxy sebagai proxy
Port pada server web utama disebut port frontend. HAProxy adalah penyeimbang beban HTTP yang dapat dikonfigurasi sebagai proxy terbalik. Di sini kita akan melihat bagaimana saya mengonfigurasi HAProxy dengan menggunakan playbook Ansible.
Periksa sistem di mana Anda perlu mengonfigurasi HAProxy
HAProxy tidak diinstal pada sistem ini. Anda dapat mengonfirmasinya dengan perintah berikut:
rpm -q haproxy
Langkah-langkah untuk mengkonfigurasi HAProxy
Langkah 1 - Instal HAProxy
Untuk menginstal HAProxy, Anda harus menggunakan paket modul di mana Anda memberikan nama layanan yang ingin Anda instal:
- name: "Configure Load balancer"
package:
name: haproxy
Langkah 2 - Salin file konfigurasi untuk proxy terbalik
Salin file konfigurasi agar Anda dapat mengubahnya:
cp /etc/haproxy/haproxy.cfg /root/ws1/haproxy.cfg
Langkah 3 - Ubah port frontend dan tetapkan IP backend
Secara default, frontend terikat ke port 5000. Saya mengubah nomor port menjadi 8080. Saya juga menerapkan for
loop untuk mengkonfigurasi IP backend. Sekarang Anda dapat meluncurkan server web sebanyak yang Anda perlukan, dan tidak perlu mengonfigurasi IP secara manual di dalam /etc/httpd/httpd.conf
. Ini akan secara otomatis mengambil IP dari inventaris.
backend app
balance roundrobin
{% for i in groups ["web"] %}
server app1{{ loop.index }} {{ i}}:80 check
{% endfor %}
Langkah 4 - Salin haproxy.cfg ke node terkelola
Menggunakan templat mode, salin file konfigurasi untuk HAProxy dari node pengontrol ke node yang dikelola:
- template:
dest: "/etc/haproxy/haproxy.cfg"
src: "/root/ws1/haproxy.cfg"
Langkah 5 - Mulai layanan
Gunakan layanan modul untuk memulai layanan HAProxy:
- service:
name: "haproxy"
state: restarted
Periksa sistem tempat Anda perlu menginstal server web httpd
Untuk menguji konfigurasi HAProxy, Anda juga akan mengonfigurasi httpd
pada node target Anda dengan bantuan Ansible. Untuk memeriksa apakah Anda belum memiliki httpd
di sistem Anda, gunakan perintah berikut:
rpm -q httpd
Langkah 1 - Instal httpd
Paket modul digunakan untuk menginstal httpd
pada simpul yang dikelola:
- name: "HTTPD CONFIGURE"
package:
name: httpd
Langkah 2 - Salin laman web
Templat modul digunakan untuk menyalin halaman web Anda dari sumber ke tujuan:
- template:
dest: "/var/www/html/index.html"
src: "/root/ws1/haproxy.html"
Langkah 3 - Mulai layanan
Layanan modul digunakan untuk memulai httpd
layanan:
- service:
name: "haproxy"
state: restarted
Lengkapi buku pedoman untuk mengonfigurasi proxy terbalik
Dalam playbook ini, Anda memiliki dua host berbeda dengan dua grup berbeda. Satu grup untuk server web, dan grup lainnya untuk penyeimbang beban:
---
- hosts: web
tasks:
- name: "HTTPD CONFIGURE"
package:
name: httpd
- template:
dest: "/var/www/html/index.html"
src: "/root/ws1/haproxy.html"
- service:
name: "httpd"
state: restarted
- hosts: lb
tasks:
- name: "Configure Load balancer"
package:
name: haproxy
- template:
dest: "/etc/haproxy/haproxy.cfg"
src: "/root/ws1/haproxy.cfg"
- service:
name: "haproxy"
state: restarted
Jalankan buku pedoman
ansible-playbook haproxy.yml
Keluaran
Playbook berhasil dijalankan, dan dua server web target dapat diakses oleh server web utama menggunakan penyeimbang beban.
[ Mencari lebih banyak tentang otomatisasi sistem? Mulailah dengan The Automated Enterprise, buku gratis dari Red Hat. ]
Kesimpulan
Penyeimbang beban dan proxy terbalik sekarang telah dikonfigurasi oleh Ansible. Anda dapat menambahkan lapisan perlindungan dan ketersediaan ke layanan web Anda dengan menambahkan HAProxy ke infrastruktur Anda. Pastikan untuk memeriksa dokumentasi target spesifik Anda untuk mempelajari lebih lanjut.