HAproxy на CentOS & Red Hat

Мануал

https://itsecforu.ru

Keepalived используется для отказоустойчивости между двумя серверами.

Это средства для балансировки нагрузки и обеспечения доступности к основанным на Linux инфраструктурам.

Сервис работает по протоколу VRRP (Протокол резервирования виртуального маршрутизатора).

У нас имеется два сервера LA ( load balance ), использемые HAProxy, и теперь мы должны реализовать VRRP между обоими серверами.

Это учебное руководство поможет вам конфигурировать KeepAlived и чтобы сконфигурировать HAProxy на обоих серверах.

Исходные данные в студию :

  1. LB1 Server: 192.168.10.111 ( eth1 )
  2. LB2 Server: 192.168.10.112 ( eth1 )
  3. Virtual IP: 192.168.10.121

Теперь мы проведем установку отказоустойчивости между LB1 и серверами LB2.
Схема по установке:

https://itsecforu.ru

Шаг 1: установим пакеты

# yum install gcc kernel-headers kernel-devel
# yum install keepalived

Шаг2: сконфигурируем Keepalived на LB1. Правим файл /etc/keepalived/keepalived.conf следующим видом:

! Configuration File for keepalived

global_defs {
   notification_email {
     sysadmin@mydomain.com
     support@mydomain.com
   }
   notification_email_from lb1@mydomain.com
   smtp_server localhost
   smtp_connect_timeout 30
}

vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.121
    }
}

Шаг 3: сконфигурируем KeepAlived на LB2.

Отредактируем конфигурационный файл Keepalived на LB2 и добавьте следующую конфигурацию.

При внесении изменений в конфигурационном файле LB2 удостоверьтесь, что установили приоритетные значения таким образом, чтобы понизить значение priority по отношению к тому же значению LB1.

Например, ниже в  конфигурации указано значение  100 , в отличии от LB1, где оно равно 101.

! Configuration File for keepalived

global_defs {
   notification_email {
     sysadmin@mydomain.com
     support@mydomain.com
   }
   notification_email_from lb2@mydomain.com
   smtp_server localhost
   smtp_connect_timeout 30
}

vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.121
    }
}

Шаг 4: запускаем  KeepAlived

Выполянем команду старта нашего сервиса и назначаем автоматическую загрузку это службы при запуске операционной системы.

# service keepalived start
# chkconfig keepalived on

Шаг 5: проверяем виртуальный ip адресс

Виртуальным IP по умолчанию будет  IP присвоенный главному серверу.

В случае если Master падает, он будет автоматически присвоен slave серверу. Используем следующую команду, чтобы показать присвоенный виртуальный IP в интерфейсе.

# ip addr show eth1

Пример вывода:

2: eth1: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:0c:29:6f:ed:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.111/24 brd 192.168.1.255 scope global eth1
    inet 192.168.10.121/32 scope global eth1
    inet6 fe80::20c:29ff:fe6f:ed60/64 scope link
       valid_lft forever preferred_lft forever


Выполняем проверку:

  1. Останавливаем LB1:
# ip addr show eth1
  1. Теперь стартуем LB2 и проверяем аналогично:
# ip addr show eth1
  1. Смотрим логи и проверяем работу:
# tailf /var/log/messages
 

Пример вывода:

Mar 19 17:30:24 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) Transition to MASTER STATE
Mar 19 17:30:25 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) Entering MASTER STATE
Mar 19 17:30:25 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) setting protocol VIPs.
Mar 19 17:30:25 localhost Keepalived_healthcheckers[6957]: Netlink reflector reports IP 192.168.10.121 added
Mar 19 17:30:25 localhost avahi-daemon[1407]: Registering new address record for 192.168.10.121 on eth1.IPv4.
Mar 19 17:30:25 localhost Keepalived_vrrp[6958]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for

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