На серверах BC1, BC2, BC3 последовательно выполните действия:
1.Добавьте KeepAlived в автозагрузку. Для этого выполните команду:
systemctl enable keepalived
2.Включите переадресацию IP-адресов, чтобы использовать службу KeepAlived для пересылки сетевых пакетов на внутренние серверы. Для этого выполните команды:
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
3.Примените настройки:
sysctl -p
4.Для проверки процесса haproxy используется утилита killall. Если в используемом дистрибутиве Linux ее нет, установите утилиту с помощью команды:
apt-get install psmisc
5.На сервере BC1 откройте на редактирование конфигурационный файл keepalived.conf:
nano /etc/keepalived/keepalived.conf
В конфигурационном файле задайте настройки:
global_defs {
script_user root
enable_script_security
}
#Script used to check if HAProxy is running
vrrp_script check_haproxy {
script "/usr/bin/killall -0 haproxy"
interval 2
weight 2
}
# Virtual interface
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state MASTER # MASTER для основного сервера, BACKUP для резевного
interface eth0 # Имя интерфейса можно узнать с помощью команды ifconfig
virtual_router_id 51
priority 101 # Для основного сервера с haproxy 101, для резевного 100
# Интервал проверки работоспособности в секундах
advert_int 1
## authentication {
## auth_type PASS
## auth_pass 12345
## }
# Исходный IP-адрес, используемый для отправки одноадресных пакетов VRRP, текущий
# активный реальный IP-адрес
unicast_src_ip <BC1IP> # Private IP address of master
# IP-адрес однорангового узла, получающего одноадресные пакеты VRRP
#(для предотвращения отключения вещания восходящим коммутатором)
unicast_peer {
<BC2IP> # Private IP address of the backup haproxy
<BC3IP>
}
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
<Общий виртуальный IP адрес> # Виртуальный IP, по которому будет доступен keepalived
}
track_script {
check_haproxy
}
}
6.На сервере BC2 откройте на редактирование конфигурационный файл keepalived.conf и укажите в нем настройки:
global_defs {
script_user root
enable_script_security
}
# Script used to check if HAProxy is running
vrrp_script check_haproxy {
script "/usr/bin/killall -0 haproxy"
interval 2
weight 2
}
# Virtual interface
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state BACKUP # MASTER для основного сервера, BACKUP для резевного
interface eth0 # Имя интерфейса можно узнать с помощью команды ifconfig
virtual_router_id 51
priority 100 # Для основного сервера с haproxy 101, для резевного 100
# Интервал проверки работоспособности в секундах
advert_int 1
## authentication {
## auth_type PASS
## auth_pass 12345
## }
# Исходный IP-адрес, используемый для отправки одноадресных пакетов VRRP, текущий
# активный реальный IP-адрес
unicast_src_ip <BC2IP> # Private IP address of master
# IP-адрес однорангового узла, получающего одноадресные пакеты VRRP
#(для предотвращения отключения вещания восходящим коммутатором)
unicast_peer {
<BC1IP> # Private IP address of the backup haproxy
<BC3IP>
}
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
<Общий виртуальный IP адрес> # Виртуальный IP, по которому будет доступен keepalived
}
track_script {
check_haproxy
}
}
7.На сервере BC3 откройте на редактирование конфигурационный файл keepalived.conf и укажите в нем настройки:
global_defs {
script_user root
enable_script_security
}
# Script used to check if HAProxy is running
vrrp_script check_haproxy {
script "/usr/bin/killall -0 haproxy"
interval 2
weight 2
}
# Virtual interface
# The priority specifies the order in which the assigned interface to take over in a failover
vrrp_instance VI_01 {
state BACKUP # MASTER для основного сервера, BACKUP для резевного
interface eth0 # Имя интерфейса можно узнать с помощью команды ifconfig
virtual_router_id 51
priority 99 # Для основного сервера с haproxy 101, для резевного 100
# Интервал проверки работоспособности в секундах
advert_int 1
## authentication {
## auth_type PASS
## auth_pass 12345
## }
# Исходный IP-адрес, используемый для отправки одноадресных пакетов VRRP, текущий
# активный реальный IP-адрес
unicast_src_ip <BC3IP> # Private IP address of master
# IP-адрес однорангового узла, получающего одноадресные пакеты VRRP
#(для предотвращения отключения вещания восходящим коммутатором)
unicast_peer {
<BC1IP> # Private IP address of the backup haproxy
<BC2IP>
}
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
<Общий виртуальный IP адрес> # Виртуальный IP, по которому будет доступен keepalived
}
track_script {
check_haproxy
}
}
8.Перезапустите KeepAlived:
service keepalived restart
© Компания Directum, 2024 |