LVS DR + keepalived актуальный бой

Актуальная боевая среда (CentOS7)

VIP 10.211.55.180 (виртуальный IP) 
LVS1 10.211.55.151 (основной LVS) 
LVS2 10.211.55.152 (резервный LVS) 
RS1 10.211.55.171 (реальный сервер 1) 
RS2 10.211.55.172 (реальный сервер 2)


Инициализировать все узлы в среде

iptalbes -F # Очистить брандмауэр

systemctl stop firewalld # Закройте брандмауэр

systemctl disable firewalld # Не запускать брандмауэр при загрузке

setenforce 0 # временно закрыть selinux

sed -i 's / ^ SELINUX =. * $ / SELINUX = отключено / g' / etc / selinux / config # 关闭 selinux

yum -y install epel-release # Установить исходный код epel


LVS1,2 операция


1. Установите keepalived ipvsadm


yum -y установить keepalived ipvsadm



[root @ localhost ~] # lsmod | grep ip_vs # Проверить модуль ipvs

ip_vs_rr 12600 1

ip_vs 145497 3 ip_vs_rr

nf_conntrack 139264 9 ip_vs, nf_nat, nf_nat_ipv4, nf_nat_ipv6, xt_conntrack, nf_nat_masquerade_ipv4, nf_conntrack_netlink, nf_conntrack_ipv4, nf_v6conntrack_

libcrc32c 12644 4 xfs, ip_vs, nf_nat, nf_conntrack 




2. Настройте поддержку активности (LVS1, 2).


2.1 Измените файл конфигурации keepalived

[root @ localhost ~] # cd / etc / keepalived /

[root @ localhost keepalived] # cat keepalived.conf

! Keepalived Файл конфигурации для 

global_defs { 
   notification_email { 
     [email protected] 
   } 
   notification_email_from [email protected] 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30 
   router_id из LVS_DEVEL 
   vrrp_skip_check_adv_addr 
# # vrrp_strict 
   vrrp_garp_interval 0 
   vrrp_gna_interval 0 
} 

vrrp_instance VI_1 { 
    Государство LVS1 здесь является MASTER # MASTER, Затем LVS2 меняется на 
    интерфейс BACKUP eth0 # CENTOS7 ens33 
    virtual_router_id 51 # Если основной и резервный совпадают, 
    приоритет 100 # LVS1 равен 100, тогда LVS2 равен 100 или меньше, например 90, чем больше вес, VIP плавающий, на какой стороне 99 89
    advert_int 1  
    аутентификация { 
        auth_type PASS
        auth_pass 1111 
    } 
    virtual_ipaddress { 
        10.211.55.180 #VIP 
    } 
} 

virtual_server 10.211.55.180 80 {#VIP 
    delay_loop 6 
    lb_algo р - р 
    lb_kind ДР 
    persistence_timeout 50 
    протокола TCP 

    real_server 10.211.55.171 80 {#后端RS1检测
        вес 1 
        TCP_CHECK { 
            connect_timeout 3 
            nb_get_retry 3 
            delay_before_retry 3 
            connect_port 80 
        } 
    } 
    real_server 10.211.55.172 80 {# 后端 RS2 检测
        вес 1  
        TCP_CHECK { 
            connect_timeout 3
            nb_get_retry 3 
            delay_before_retry 3 
            connect_port 80 
        } 
    } 
}



2.2 Настройка загрузки (LVS1, 2)

systemctl включить keepalived

systemctl start keepalived



3. Настройте LVS, выполните следующий сценарий (LVS1, 2) и настройте сценарий для загрузки.


vi /opt/lvs_dr.sh

#! / bin / sh 
# описание: Запустить LVS сервера Director 
VIP = 10.211.55.180 
RIP1 = 10.211.55.171 RIP2 
= 10.211.55.172 
case "$ 1" в 
    начале) 
        echo "start LVS of Director Server" 
# установить виртуальный IP-адрес и параметр sysctl 
# / sbin / ifconfig eth0: 0 $ VIP broadcast $ VIP netmask 255.255.255.255 up 
# route add -host $ VIP dev eth0: 0 
       echo "1"> / proc / sys / net / ipv4 / ip_forward # 
Очистить IPVS table 
       / sbin / ipvsadm -C 
#set LVS 
/ sbin / ipvsadm -A -t $ VIP: 80 -s rr # -p 600 # 会话 持久 化 则把 此处 的 -p 600 注释
/ sbin / ipvsadm -a -t $ VIP: 80 -r $ RIP1: 80 -g 
/ sbin / ipvsadm -a -t $ VIP: 80 -r $ RIP2: 80 -g 
Запустить LVS
      / sbin / ipvsadm 
       ;; 
    stop) 
        echo "закрыть LVS Directorserver" 
        echo "0"> / proc / sys / net / ipv4 / ip_forward 
        / sbin / ipvsadm -C 
      # / sbin / ifconfig eth0: 0 down 
        ;; 
    *) 
        echo "Usage: $ 0 {start | stop}" 
        exit 1 
esac


chmod + x /opt/lvs_dr.sh # Добавить полномочия выполнения


echo "/opt/lvs_dr.sh start" >> / etc / profile # Автозапуск



4. Настройте работу RS и выполните следующие операции (RS1, 2).


Установить nginx

yum -y install nginx # RS1, 2 установлены


echo 10.211.55.171> /usr/share/nginx/html/index.html # RS1 в работе

echo 10.211.55.172> /usr/share/nginx/html/index.html # RS2 в работе

systemctl start nginx # RS1, 2 все работают


Настройте сценарий RS и настройте автоматический запуск загрузки

vi /opt/lvs_rs.sh

#! / bin / bash 
VIP = 10.211.55.180 
/ sbin / ifconfig lo: 0 $ VIP-трансляция $ VIP маска сети 255.255.255.255 up 
/ sbin / route add -host $ VIP dev lo: 0 
echo «1 ″> / proc / sys / net / ipv4 / conf / lo / arp_ignore 
echo «2 ″> / proc / sys / net / ipv4 / conf / lo / arp_announce 
echo« 1 ″> / proc / sys / net / ipv4 / conf / all / arp_ignore 
echo « 2 ″> / proc / sys / net / ipv4 / conf / all / arp_announce 
sysctl -p

Эта операция заключается в связывании виртуального IP-адреса на устройстве обратной связи и установке его маски подсети 255.255.255.255 для поддержания взаимодействия с виртуальным IP-адресом на сервере Director, а затем для запрета локального запроса ARP.

Поскольку виртуальный IP-адрес, который является указанным выше VIP-адресом, используется совместно сервером Director и всеми реальными серверами, при наличии ARP-запроса для VIP-адреса, если сервер Director отвечает всем реальным серверам, возникнет проблема. Следовательно, это необходимо запретить. Реальный сервер отвечает на запрос ARP. Роль сценария lvsrs - заставить Real Server не отвечать на запросы arp.


chmod + /opt/lvs_rs.sh # Добавить разрешения на выполнение

echo "/opt/lvs_rs.sh" # Запускать автоматически


5. Тест

Найдите клиента и выполните следующую команду

-> $ for i в `seq 20`; сделать curl 10.211.55.180; готово

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172

10.211.55.171

10.211.55.172




рекомендация

отblog.51cto.com/slapping/2551450