Актуальная боевая среда (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