Aktuelle Kampfumgebung (CentOS7)
VIP 10.211.55.180 (virtuelle IP) LVS1 10.211.55.151 (Haupt-LVS) LVS2 10.211.55.152 (Standby-LVS) RS1 10.211.55.171 (realer Server 1) RS2 10.211.55.172 (realer Server 2)
Initialisieren Sie alle Knoten in der Umgebung
iptalbes -F # Leere die Firewall
systemctl stop firewalld #Schließen Sie die Firewall
systemctl Firewall deaktivieren # Stoppt den Start der Firewall beim Booten
setenforce 0 # selinux vorübergehend schließen
sed -i 's / ^ SELINUX =. * $ / SELINUX = deaktiviert / g' / etc / selinux / config # 关闭 selinux
yum -y installiere epel-release #Installiere epel source
LVS1,2-Betrieb
1. Installieren Sie keepalived ipvsadm
yum -y installiere keepalived ipvsadm
[root @ localhost ~] # lsmod | grep ip_vs #Überprüfen Sie das IPvs-Modul
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_conntrack_ipv6
libcrc32c 12644 4 xfs, ip_vs, nf_nat, nf_conntrack
2. Konfigurieren Sie keepalived (LVS1, 2).
2.1 Ändern Sie die Konfigurationsdatei von keepalived
[root @ localhost ~] # cd / etc / keepalived /
[root @ localhost keepalived] # cat keepalived.conf
! Keepalived die Konfigurationsdatei für global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 die ROUTER_ID des LVS_DEVEL vrrp_skip_check_adv_addr # # vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { Staat lvs1 hier die MASTER # MASTER ist, Dann wird LVS2 in die BACKUP- Schnittstelle eth0 # CENTOS7 ens33 virtual_router_id 51 geändert. #Wenn die Haupt- und Standby- Priorität 100 konsistent sind advert_int 1 Authentifizierungs { 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 rr lb_kind DR persistence_timeout 50 Protokoll TCP real_server 10.211.55.171 80 {#后端RS1检测 Gewicht 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 检测 Gewicht 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
2.2 Boot starten (LVS1, 2)
systemctl enable keepalived
systemctl start keepalived
3. Konfigurieren Sie LVS, führen Sie das folgende Skript (LVS1, 2) aus und stellen Sie das Skript so ein, dass es gestartet wird
vi /opt/lvs_dr.sh
#! / bin / sh # Beschreibung: Starten Sie LVS des Director-Servers VIP = 10.211.55.180 RIP1 = 10.211.55.171 RIP2 = 10.211.55.172 Fall "$ 1" beim Start) Echo "LVS des Director-Servers starten" # Legen Sie die virtuelle IP-Adresse fest und sysctl-Parameter # / sbin / ifconfig eth0: 0 $ VIP-Broadcast $ VIP-Netzmaske 255.255.255.255 up # route add -host $ VIP dev eth0: 0 echo "1"> / proc / sys / net / ipv4 / ip_forward #Clear IPVS Tabelle / sbin / ipvsadm -C #set LVS / sbin / ipvsadm -A -t $ VIP: 80 -s rr # -p 600 # 需要 会话 持久 化 则把 p -p 600 取消 注释 / sbin / ipvsadm -a -t $ VIP: 80 -r $ RIP1: 80 -g / sbin / ipvsadm -a -t $ VIP: 80 -r $ RIP2: 80 -g #Run LVS / sbin / ipvsadm ;; stop) echo "LVS Directorserver schließen" echo "0"> / proc / sys / net / ipv4 / ip_forward / sbin / ipvsadm -C # / sbin / ifconfig eth0: 0 down ;; *) echo "Verwendung: $ 0 {start | stop}" exit 1 esac
chmod + x /opt/lvs_dr.sh # Ausführungsberechtigung hinzufügen
echo "/opt/lvs_dr.sh start" >> / etc / profile #Auto start
4. Konfigurieren Sie den RS-Betrieb und führen Sie die folgenden Vorgänge aus (RS1, 2).
Installieren Sie nginx
yum -y install nginx # RS1, 2 sind installiert
echo 10.211.55.171> /usr/share/nginx/html/index.html # RS1 im Betrieb
echo 10.211.55.172> /usr/share/nginx/html/index.html # RS2 im Betrieb
systemctl start nginx # RS1, 2 sind alle in Betrieb
Richten Sie das RS-Skript ein und starten Sie den Start automatisch
vi /opt/lvs_rs.sh
#! / bin / bash VIP = 10.211.55.180 / sbin / ifconfig lo: 0 $ VIP-Übertragung $ VIP-Netzmaske 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
Diese Operation besteht darin, eine virtuelle IP-Adresse auf dem Loopback-Gerät zu binden und ihre Subnetzmaske auf 255.255.255.255 zu setzen, um die Kommunikation mit der virtuellen IP auf dem Director-Server aufrechtzuerhalten, und dann die lokale ARP-Anforderung zu verbieten.
Da die virtuelle IP-Adresse, bei der es sich um die oben genannte VIP-Adresse handelt, von Director Server und allen realen Servern gemeinsam genutzt wird, liegt ein Problem vor, wenn eine ARP-Anforderung für die VIP-Adresse vorliegt und der Director Server auf alle realen Server antwortet. Daher muss dies verboten werden. Der reale Server antwortet auf eine ARP-Anfrage. Die Rolle des lvsrs-Skripts besteht darin, dass Real Server nicht auf Arp-Anforderungen reagiert.
chmod + /opt/lvs_rs.sh # Ausführungsberechtigungen hinzufügen
echo "/opt/lvs_rs.sh" #Startup automatisch
5. Testen
Suchen Sie einen Client und führen Sie den folgenden Befehl aus
-> $ für i in `seq 20`; locken 10.211.55.180; erledigt
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