Исходная конфигурация:
IP-адреса в конфигурации выше используются для примера. У Вас будут другие IP-адреса.
Важно, чтобы все IP-адреса были из одной подсети. Также следует обратить внимание на то, чтобы VIP не принадлежал диапазону раздаваемых по dhcp ip-адресов в подсети (subnet), где мы будем настраивать VIP. Надежным способом избежать этой ситуации будет создание порта с назначением ему ip-адреса, соответствующего VIP. Это можно сделать двумя способами: через openstack-cli и через ui.
Заходим в настройки соответствующей подсети, и нажимаем кнопку “Добавить порт”. В появившемся окне “Создание порта” заполняем поля и нажимаем кнопку “Создать порт”:
В списке портов подсети появится наш порт в состоянии “Не подключен”:
Затем необходимо разрешить для портов (сетевых интерфейсов) виртуальных машин трафик с ip-адресами источника, отличными от ip-адреса, назначенного на этот порт. Для этого находим id порта виртуальной машины командой:
Будет выведен список всех портов, подключенных к виртуальной машине. Нам нужен ID того порта, на котором мы планируем настраивать VIP. Следующим шагом разрешаем исходящий трафик с ip-адресом источника, отличным от ip-адреса порта ВМ:
Те же самые действия проделываем для ВМ backend02.
Есть один нюанс для параметра ip-address. Если на порт назначена группа безопасности, содержащее правило со ссылкой на саму эту группу безопасности, то в эту группу **неявно** будет добавлено правило, разрешающее помимо трафика с хостов в группе безопасности еще и трафик с диапазона ip-address.
После успешного завершения предыдущих шагов переходим к установке пакета keepalived. Подключаемся к виртуальным машинам backend01 и backend02 по ssh или через консоль. Производим установку пакета keepalived c помощью пакетного менеджера.
Для ВМ backend01 в конфигурационный файл /etc/keepalived/keepalived.conf прописываем следующую конфигурацию:
Для ВМ backend02 в конфигурационный файл /etc/keepalived/keepalived.conf прописываем следующую конфигурацию:
Запускаем сервис keepalived на обоих ВМ командой:
#> systemctl start keepalived
Проверяем статус запущенных сервисов
Сервис на обоих ВМ должен быть в состоянии active (running). Если это не так, то нужно выявить причину и устранить ее.
Проверяем командой наличие VIP на интерфейсе:
На сетевом интерфейсе eth0 ВМ backend01 должен появиться дополнительный ip-адрес, соответствующий VIP.
Проверим работу нашей конфигурации: с какой-либо третьей ВМ запустим пинг по адресу VIP, который назначен на ВМ backend01. Затем остановим сервис keepalived на backend01. VIP должен переназначаться на интерфейс eth0 ВМ backend02.
Это можно проверить, выполнив команду “ip a” в консоли сервера backend02. Он должен появиться в списке ip-адресов, назначенных на сетевой интерфейс. При этом пинг со сторонней машин будет успешно идти на VIP.
Снова запустим сервис keepalived на backend01, и VIP снова будет переназначен интерфейсу ВМ backend01.
VIP успешно настроен.
Опишите вашу задачу, и мы поможем вам ее решить