Keepalived 2 в Hetzner Cloud на Centos 7

Hetzner cloud предоставляет возможность использовать плавающий IP (Floating IP), но нет механизма автоматического переключения между серверами. Однако есть api — hcloud.

Будем использовать связку hcloud + bash + keepalived для того, чтобы решить нашу задачу и автоматизировать процесс переключения IP между серверами.

Для начало проверьте, что настроен Floating IP непосредственно на серверах к которым мы будем привязывать данную схему.

Если сделали правки, перезагружаем сеть

 

Установка Keepalived

Если устанавливать из репозиториев centos 7 то по-умолчанию будет установлена версия 1.3.5

Я буду собирать из исходников 2-ю версию

Установим необходимые зависимости:

Скачиваем исходники и начинаем процесс сборки

Создадим сервис файл

Перечитаем конфиги сервисов и сделаем enable для нашего нового

 

Настройка Keepalived

Далее самое интересно, настройка Keepalived в режиме мастер и бекап сервер.

Для первого, мастер, сервера конфиг следующий

Конфиг второго сервера, бекап:

Идея заключается в проверке сервиса keepalived, и в случаи его недоступности выполнении скрипта /etc/keepalived/master.sh. В качестве проверки можно сделать сервис nginx например или иной другой критичный для вас.

 

Настройка hcloud api и скрипта для keepalived

Для того, чтобы обратится из скрипта /etc/keepalived/master.sh указанного в конфиге keepalived к hetzner cloud нам необходимо установить api — hcloud

Проверим, чтобы в консоле hcloud нам возвращал информацию

 

 

Создадим скрипт  master.sh

В переменной HTTP_IP_CURRENT_SERVER_ID указать имя floating-ip который создан панели Hetzner Cloud предварительно, в данном примере это имя — http.

Сделаем файл исполняющимся

Перезагружаемся

 

 

В качестве дополнения, rpm пакет собранной версии keepalived для centos 7 на ядре 3.10

keepalived-2.0.20-1.x86_64.rpm

 

Ссылки:

Оригинал статьи https://vitobotta.com/2020/03/20/haproxy-kubernetes-hetzner-cloud/

Добавить комментарий

Ваш адрес email не будет опубликован.