Technology

Instalasi Haproxy dan Keepalived untuk Hight Availability Load Balancer

 

Loading...

Untuk meningkatkan availability pada service http, kita akan memerlukan server yang dapat melakukan load balancing. Rencananya kita akan membuat load balancer dengan menggunakan 2 server yang diinstallkan haproxy dengan hostname dan IP berikut ini.

haproxy1 192.168.1.30

haproxy2 192.168.1.31

Lalu ditambahkan 1 IP address sebagai virtual IP yaitu 192.168.1.32. Ip ini akan digunakan sebagai endpoint untuk pengaksesan dan menjadi penentu jalur yang hidup.

Konfigurasi network

Pertama yang dilakukan adalah membuat kernel dapat membaca bind additional IP yang tidak terdefinisi di dalam interface file:

nano /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1

jalankan command berikut

sysctl -p

Instalasi HAProxy dan keepalive

apt-get update && apt-get install keepalived haproxy -y

Lalu ubah keepalived configurationnya dengan membuat file

/etc/keepalived/keepalived.conf

Isikan dengan konfigurasi berikut:

global_defs {
  router_id haproxy1
}
vrrp_script haproxy {
  script "killall -0 haproxy"
  interval 2
  weight 2
}
vrrp_instance 50 {
  virtual_router_id 50
  advert_int 1
  priority 101
  state MASTER
  interface eth0
  virtual_ipaddress {
                192.168.1.32 dev eth0
  }
  track_script {
                haproxy
  }
}

Perhatian: router_id yang diset disesuaikan dengan hostname dan VIP diset sebagai 192.168.1.32

lakukan hal yang sama pada node kedua, namun pastikan hostname yang digunakan dengan menggunakan hostname yang tepat.

Edit konfigurasi haproxy

nano /etc/haproxy/haproxy.cfg
global
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon
    log 192.168.1.30 local0
    stats socket /var/lib/haproxy/stats
    maxconn 4000
defaults
    log    global
    mode    http
    option    httplog
    option    dontlognull
                contimeout 5000
                clitimeout 50000
                srvtimeout 50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http
listen stats 192.168.1.30:80
            mode http
                stats enable
                stats uri /stats
                stats realm HAProxy\ Statistics
                stats auth admin:password

Perhatian: setting pada hproxy.cfg disesuaikan dengan IP local server yang digunakan lakukan hal yang sama pada node haproxy kedua perhatikan juga username dan password pada baris auth untuk proses aksesnya nanti.

Enable HAProxy

Untuk melakukan hal ini, perlu dilakukan edit sebagai berikut ini

nano /etc/default/haproxy
# Set ENABLED to 1 if you want the init script to start haproxy.
ENABLED=1
# Add extra flags here.
#EXTRAOPTS="-de -m 16"

Lalu lakukan restart service

service keepalived restart
service haproxy restart

Setelah proses ini selesai dilakukan, kita dapat mengecek pair pada load balancer. Pada saat ini, kita perlu mengaktifkan VIP dan mengecek prosesnya sebagai berikut.

# ip a | grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
      inet 192.168.1.30/24 brd 192.168.1.255 scope global eth0
      inet 192.168.1.32/32 scope global eth0

Jika node1 mati, maka node2 akan secara otomatis mengambil VIP.

Loading...

Berikan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *