База знаний
Настройка keepalived для автоматического переключения VIP между серверами
Опубликовано Сергей Манин on 02 June 2025 13:25
1. Создание сети и подсети
Создание сети
openstack network create mynetwork
Создание подсети
openstack subnet create --network mynetwork --subnet-range 192.168.0.0/24 --gateway 192.168.0.1 --dns-nameserver 89.253.192.18 --dns-nameserver 89.253.193.18 mysubnet
2. Создание виртуальных машин
Создание первой ВМ (MASTER)
openstack server create --image "Ubuntu 22.04" --flavor BL.1-2048 --network mynetwork --security-group default --boot-from-volume 10 vm-1
Создание второй ВМ (BACKUP)
openstack server create --image "Ubuntu 22.04" --flavor BL.1-2048 --network mynetwork --security-group default --boot-from-volume 10 vm-2
Создание jumphost
openstack server create --image "Ubuntu 22.04" --flavor BL.1-2048 --network mynetwork --security-group default --boot-from-volume 10 jumphost-vm
3. Создание виртуального IP-порта
Создание порта для виртуального IP
openstack port create vip-port --network mynetwork --fixed-ip subnet=mysubnet,ip-address=192.168.0.254
4. Настройка маршрутизации (если нужен внешний доступ)
Создание роутера
openstack router create router
Добавление подсети в роутер
openstack router add subnet router mysubnet
Создание и назначение floating IP
openstack floating ip create public
openstack server add floating ip <server-id> <floating-ip>
5. Настройка keepalived на ВМ
На VM-1 (MASTER) установливаем keepalived:
apt update
apt install -y keepalived
После установки keepalived создаем конфигурацию:
cat > /etc/keepalived/keepalived.conf << EOF
global_defs
{
router_id VM-1
}
vrrp_instance VI_254
{
state MASTER
interface eth0
virtual_router_id 254
priority 120
advert_int 1
authentication
{
auth_type PASS
auth_pass <pass>
}
virtual_ipaddress
{
192.168.0.254/24
}
}
EOF
Запускаем keepalived:
systemctl restart keepalived.service
На VM-2 (BACKUP) установливаем keepalived:
apt update
apt install -y keepalived
После установки keepalived создаем конфигурацию:
cat > /etc/keepalived/keepalived.conf << EOF
global_defs
{
router_id VM-2
}
vrrp_instance VI_254
{
state BACKUP
interface eth0
virtual_router_id 254
priority 90
advert_int 1
authentication
{
auth_type PASS
auth_pass <pass>
}
virtual_ipaddress
{
192.168.0.254/24
}
}
EOF
Разрешаем виртуальный IP на порту
openstack port set <port-id-vm1> --allowed-address ip-address=192.168.0.254/24
openstack port set <port-id-vm2> --allowed-address ip-address=192.168.0.254/24
Запускаем keepalived
systemctl restart keepalived.service
(0 голос(а))
Эта статья помогла
Эта статья не помогла

Коментарии (0)