База знаний
Отказоустойчивая схема LPA (Keepalived)
Автор Andrey Prokopenko, Last modified by Andrey Prokopenko на 16 марта 2026 03:53 PM

В данной статье рассматривается настройка отказоустойчивой схемы для LPA.

Предварительные требования:

  1. Подготовлены два сервера на Linux для LPA
  2. Установлен и настроен LPA

Установка и настройка Keepalived

Установка и настройка Keepalived выполняется на всех серверах с LPA 

1. Установите Keepalived командой:
sudo apt-get install keepalived

2. Откройте файл /etc/sysctl.conf и добавьте строки:
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1

3. Выполните команду sudo sysctl -p для проверки добавленных изменений

4. Создайте файл конфигурации /etc/keepalived/keepalived.conf

5. Настройте файл конфигурации на основном сервере:

global_defs {
    router_id LPA
}

vrrp_script check_lpa {
    script "/bin/sh -c '/usr/bin/docker inspect --format='\"'\"'{{.State.Running}}'\"'\"' lpa | /usr/bin/grep -q true && /usr/bin/ss -tuln | /usr/bin/grep -q :8389'" # Вместо lpa подставить название запущенного docker контейнера
    interval 2
    fall 2
    rise 2
    weight 2
}

vrrp_instance LPA {
    state MASTER # MASTER для основного сервера, BACKUP - для резервного
    interface ens37 # Имя интерфейса, можно узнать с помощью команды ifconfig
    virtual_router_id 51 
    priority 101 # 101 для основого сервера, для резервного 100

    virtual_ipaddress {
        192.168.1.31 # Виртуальный IP, по которому будет доступен keepalived
    }

    track_script {
        check_lpa
    }
}

6. Настройте файл конфигурации на резервном сервере, который будет отличаться параметрами: "state BACKUP" и "priority 100"

global_defs {
    router_id LPA
}

vrrp_script check_lpa {
    script "/bin/sh -c '/usr/bin/docker inspect --format='\"'\"'{{.State.Running}}'\"'\"' lpa | /usr/bin/grep -q true && /usr/bin/ss -tuln | /usr/bin/grep -q :8389'" # Вместо fra подставить название запущенного docker контейнера
    interval 2
    fall 2
    rise 2
    weight 2
}

vrrp_instance LPA {
    state BACKUP # MASTER для основного сервера, BACKUP - для резервного
    interface ens37 # Имя интерфейса, можно узнать с помощью команды ifconfig
    virtual_router_id 51 
    priority 100 # 101 для основого сервера, для резервного 100

    virtual_ipaddress {
        192.168.1.31 # Виртуальный IP, по которому будет доступен keepalived
    }

    track_script {
        check_lpa
    }
}

7. Запустите keepalived командой /etc/init.d/keepalived start. Проверить работоспособность сервиса можно командой: sudo service keepalived status, а команой ip addr show ens37 (имя сетевого интерфейса) можно проверить поднялся ли виртуальный IP адрес.

Для перезагрузки службы используйте команду: sudo service keepalived restart

(0 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии:
Портал технической поддержки компании Индид