Использование Keepalived для высокой доступности

Руководство по настройке и использованию Keepalived.
/ Системное администрирование Высокая доступность

Рассмотрим использование Keepalived для обеспечения высокой доступности (High Availability, HA) и разберем пошагово его настройку и использование.

Что такое Keepalived?

Keepalived — это современный инструмент, созданный для обеспечения высокой доступности (HA) и балансировки нагрузки для Linux. Он использует протокол VRRP (Virtual Router Redundancy Protocol), чтобы обеспечить отказоустойчивость, когда основной сервер выходит из строя.

Основные компоненты и функции Keepalived

VRRP (Virtual Router Redundancy Protocol):

- Основной компонент Keepalived, позволяющий создать группу из нескольких серверов, где один сервер является главным (master), а остальные — резервными (backup). При выходе главного сервера из строя, один из резервных серверов автоматически становится новым главным сервером.

Health Checks (Проверки состояния):

- Keepalived может проводить проверки состояния сервисов или приложений, чтобы убедиться, что они работают правильно. Если сервис недоступен, Keepalived может переключить трафик на резервный сервер.

IP Failover (Перенос IP-адресов):

- Keepalived позволяет автоматически перенести IP-адрес главного сервера на резервный, если главный сервер выходит из строя.

Установка Keepalived

На Ubuntu/Debian:

sudo apt-get update
sudo apt-get install keepalived

На CentOS/RHEL:

sudo yum install keepalived

Настройка Keepalived

Файл конфигурации Keepalived обычно находится по пути: `/etc/keepalived/keepalived.conf`.

Пример конфигурации:

Главный сервер (Master):

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 12345
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

Резервный сервер (Backup):

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 12345
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

Параметры конфигурации:

  • state: Состояние сервера (MASTER или BACKUP)
  • interface: Сетевой интерфейс, который будет использоваться
  • virtual_router_id: Идентификатор виртуального маршрутизатора (должен совпадать на всех серверах в группе)
  • priority: Приоритет сервера (чем выше значение, тем больше приоритет у сервера)
  • advert_int: Интервал (в секундах) между объявлениями VRRP
  • authentication: Параметры аутентификации

- auth_type: Тип авторизации (обычно PASS).

- auth_pass: Пароль для авторизации.

  • virtual_ipaddress: Виртуальный IP-адрес, который будет перемещаться между серверами

Запуск и управление Keepalived

После настройки конфигурационного файла, нужно запустить Keepalived:

sudo systemctl start keepalived

Для проверки статуса:

sudo systemctl status keepalived

Для того чтобы Keepalived запускался автоматически при старте системы:

sudo systemctl enable keepalived

Проверка работы Keepalived

Убедитесь, что мастер-сервер держит виртуальный IP-адрес:

ip addr show eth0

Отключите мастер-сервер для проверки переключения:

sudo systemctl stop keepalived

Проверьте, что резервный сервер взял на себя виртуальный IP-адрес

Заключение

Keepalived — это мощный инструмент для обеспечения высокой доступности и отказоустойчивости. Настроив его должным образом, можно значительно повысить надежность и бесперебойность работы ваших сервисов. Следуя данному руководству, вы сможете настроить основную функциональность Keepalived и обеспечить высокую доступность ваших приложений.

Поиск