wrk 2024-10-01 17-08-55
Установка и настройка HAProxy и Keepalived
1. Установка HAProxyНа каждом сервере, где будет работать HAProxy, выполните следующие команды:
bash
sudo apt-get update
sudo apt-get install haproxy -y
2. Конфигурация HAProxy
Отредактируйте файл конфигурации HAProxy /etc/haproxy/haproxy.cfg, чтобы настроить балансировку нагрузки. Пример конфигурации:
text
global
log /dev/log local0
maxconn 2000
defaults
log global
mode tcp
option tcplog
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend galera_frontend
bind *:3306 # Порт для подключения к Galera-кластеру
default_backend galera_backend
backend galera_backend
balance roundrobin # Метод балансировки нагрузки
option mysql-check user haproxy_check # Проверка состояния сервера с использованием пользователя haproxy_check
server galera_node1 192.168.1.101:3306 check # IP-адрес первого узла Galera
server galera_node2 192.168.1.102:3306 check # IP-адрес второго узла Galera
server galera_node3 192.168.1.103:3306 check # IP-адрес третьего узла Galera
3. Установка Keepalived
На тех же серверах, где установлен HAProxy, выполните:
bash
sudo apt-get install keepalived -y
4. Конфигурация Keepalived
Отредактируйте файл конфигурации Keepalived /etc/keepalived/keepalived.conf. Пример конфигурации для двух серверов (MASTER и BACKUP):
Узел 1 (MASTER)
text
global_defs {
router_id MASTER_NODE
}
vrrp_instance VI_1 {
state MASTER
interface eth0 # Укажите ваш интерфейс (например, eth0)
virtual_router_id 51
priority 100 # Высокий приоритет для основного узла
advert_int 1
authentication {
auth_type PASS
auth_pass mysecretpassword # Замените на свой пароль
}
virtual_ipaddress {
192.168.1.200 # Виртуальный IP-адрес для кластера HAProxy
}
}
Узел 2 (BACKUP)
text
global_defs {
router_id BACKUP_NODE_1
}
vrrp_instance VI_1 {
state BACKUP
interface eth0 # Укажите ваш интерфейс (например, eth0)
virtual_router_id 51
priority 90 # Ниже приоритет для резервного узла
advert_int 1
authentication {
auth_type PASS
auth_pass mysecretpassword # Тот же пароль, что и на MASTER узле
}
virtual_ipaddress {
192.168.1.200 # Виртуальный IP-адрес для кластера HAProxy (тот же)
}
}
5. Запуск сервисов
После настройки файлов конфигурации запустите и активируйте все сервисы:
На всех серверах с HAProxy:
bash
sudo systemctl restart haproxy
sudo systemctl enable haproxy
На всех серверах с Keepalived:
bash
sudo systemctl restart keepalived
sudo systemctl enable keepalived
Проверка работоспособности
Убедитесь, что все сервисы работают корректно:
На каждом сервере с HAProxy:
bash
systemctl status haproxy
systemctl status keepalived
Проверьте, что виртуальный IP-адрес активен на основном сервере:
bash
ip addr show eth0 | grep "192.168.1.200"
Заключение
Теперь у вас есть полная конфигурация для настройки HAProxy с использованием Keepalived для обеспечения высокой доступности. Эта конфигурация позволяет автоматически переключаться на резервный сервер в случае сбоя основного сервера HAProxy, обеспечивая отказоустойчивость и надежность вашей системы балансировки нагрузки.