Некоторые архитектуры высокой доступности требуют плавающего IP-адреса. Эта функциональность доступна на платформе Vultr после включения частных сетей. Vultr предлагает диапазон IP-адресов в каждой частной сети: «Вы можете использовать любые IP-адреса, которые вам нравятся, в частной сети. Мы назначаем один IP-адрес по умолчанию, но вы можете игнорировать его и использовать другие, если хотите». , Поэтому мы можем использовать любой виртуальный IP-адрес в пределах диапазона частных IP-адресов. Этот пример показывает пассивную / активную настройку. Главный сервер будет запрашивать плавающий IP, если сервер не выйдет из строя. Если главный сервер не работает, резервный IP-адрес будет запрошен резервным сервером.
Предпосылки
- Два экземпляра сервера Ubuntu 16.04 LTS x64 (главный и резервный сервер).
- Пользователь sudo (или root) .
Подготовка системы
Начните с включения частной сети на каждом VPS. Эта функция была хорошо документирована .
Войдите в каждую систему как sudo
пользователь и обновите систему и ее пакеты:
apt-get update && apt-get upgrade
Как только это будет сделано, мы готовы начать с установки и настройки Keepalived.
Установка Keepalived
Теперь, когда каждая система обновлена и имеет частный IP-адрес, вы можете установить Keepalived на них обоих.
apt-get install keepalived
Это установит демон высокой доступности. Keepalived - это программа, которая обеспечивает высокую доступность и функциональность балансировки нагрузки на основе протокола резервирования виртуального маршрутизатора (VRRP).
Главный сервер
На главном сервере измените файл конфигурации Keepalived.
nano /etc/keepalived/keepalived.conf
Это virtual_ipaddress
IP, который мы будем перемещать между серверами. В priority
определяет , кто будет владеть IP. Для мастера мы будем использовать приоритет 200
. Мы будем использовать в 10.99.0.200
качестве нашего плавающего виртуального IP.
vrrp_instance VI_1 {
state MASTER
interface ens7
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass thisismysupersecretpassword
}
virtual_ipaddress {
10.99.0.200
}
}
Резервный сервер
На сервере резервного копирования измените файл конфигурации Keepalived.
nano /etc/keepalived/keepalived.conf
Здесь мы определим virtual_ipaddress
как на главном сервере. Разница здесь в том, что приоритет этого сервера ниже, поэтому он будет запрашивать IP только тогда, когда мастер не подключен.
vrrp_instance VI_1 {
state BACKUP
interface ens7
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass thisismysupersecretpassword
}
virtual_ipaddress {
10.99.0.200
}
}
Использование и тестирование
После настройки обеих сервисов Keepalived запустите каждый сервис и включите его при загрузке.
systemctl start keepalived
systemctl enable keepalived
На третьем сервере (или на сервере резервного копирования) начните пинг с нашего общего IP-адреса:
ping 10.99.0.200
Теперь перезагрузите главный сервер и посмотрите, как IP-адрес перемещается на резервный сервер. На это обычно указывает небольшое увеличение задержки пинга.
64 bytes from 10.99.0.200: icmp_seq=80 ttl=64 time=0.384 ms
64 bytes from 10.99.0.200: icmp_seq=81 ttl=64 time=1.33 ms <<< failover has happened
64 bytes from 10.99.0.200: icmp_seq=82 ttl=64 time=0.388 ms
64 bytes from 10.99.0.200: icmp_seq=83 ttl=64 time=0.339 ms
64 bytes from 10.99.0.200: icmp_seq=84 ttl=64 time=0.570 ms
Вывод
Keepalived работает без проблем на Vultr и готов для всех ваших проектов архитектуры высокой доступности.