centos7.2 搭建keepalived+lvs
阿新 • • 發佈:2018-06-18
檢測端口 .... desc ddr 互聯網 grub2 article function ash centos7 系統安裝出來默認的網卡設備名變成了eno....看著不舒服,先來修改下網卡設備名
添加虛擬網卡後不要使用ifconfig查看,要使用ip addr來看虛擬網卡設備名一般為ens37...
添加虛擬網卡後不要使用ifconfig查看,要使用ip addr來看虛擬網卡設備名一般為ens37...
安裝系統前光標放在"install centos 7"使用tap建,在kernel最後面添加net.ifnames=0 biosdevname=0
已安裝好的系統
vim /etc/sysconfig/grub GRUB_CMDLINE_LINUX在其後面添加net.ifnames=0 biosdevname=0 grub2-mkconfig -o /boot/grub2/grub.cfg vim /etc/udev/rules.d/90-eno-fix.rules 將eno...改成eth0 網卡文件名和設備名全部改成eth開頭即可。 [root@node01 network-scripts]# ls ifcfg-eth0 ifdown-eth ifdown-post ifdown-TeamPort ifcfg-eth1 [root@node01 network-scripts]# cat ifcfg-eth0(這裏) TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=eth0(這裏) DEVICE=eth0(這裏) reboot即可
修改網卡原文鏈接
這裏順帶提一下修改MAC電腦的密碼,開機按command+r進入重裝系統界面,調出命令行,輸入resetpassword回車,選擇用戶,根據提示來即可。
進入正題
selinux和firewalld關閉 1.wget http://www.keepalived.org/software/keepalived-1.2.22.tar.gz 2.wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26-1.src.rpm rpm -ivh ipvsadm-1.26-1.src.rpm yum install -y ipvsadm 3.yum install -y gcc gcc+ openssl openssl-devel keepalived 4.tar -xf keepalived-1.2.22.tar.gz 5.cd keepalived-1.2.22/ && ./configure --prefix=/usr/local/ && make && make install 6.mkdir /etc/keepalived 7.cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 8.cd /etc/keepalived/ && vim keepalived.conf ! Configuration File for keepalived global_defs { notification_email { root@localhost(不使用sendmail,修改為本地) } notification_email_from root@localhost(這裏也是) smtp_server localhost smtp_connect_timeout 30 router_id LVS1 (這裏先修改為LVS1) vrrp_skip_check_adv_addr vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { state MASTER(主) interface eth0 (綁定的網卡與你的網卡設備名一致) virtual_router_id 51(VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬於同一VRRP組) priority 100(主節點的優先級(1-254之間),備用節點必須比主節點優先級低) advert_int 1(組播信息發送間隔,兩個節點設置必須一樣 ) authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.10.200 (VIP) } } virtual_server 192.168.10.200 8080 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 0 protocol TCP nat_mask 255.255.255.0 real_server 192.168.10.20 8080 { weight 1 SSL_GET { url { path /index.jsp digest ff20ad2481f97b1754ef3e12ecd3a9cc } url { path /mrtg/ digest 9b3a0c85a887a256d6939da88aabd8cd } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } 9.按同樣的方法配置另一節點並修改配置文件,可將次節點的配置文件復制到另一節點,並修改以下幾項: router_id LVS2 state BACKUP priority 99 其它項不必修改。 10.兩邊都配置完成後先啟動主節點 systecmctl start keepalived 11.HTTP_GET:配置健康檢查 url { path /index.jsp 健康檢查的頁面 digest 625eddd79c61cf84c71c0c17448f8093 根據頁面計算出的MD5的值,這個值一定不能隨便寫,不然keepliv } 下面說一下如何計算digest 進入到/usr/local/keepalive/bin ./genhash -s 192.168.1.107 -p 8080 -u /index.jsp 通過上訴命令計算digest 然後寫到配置文件上就可以了。 12.配置真實服務器 說明:一般真實互聯網應用都配置為lb_kind = dr 模式,因為這種模式效率是最高的,缺點就是配置稍微復雜一點,需要配置客戶端。 DR模式原理請參考:http://atong.blog.51cto.com/2393905/1348602 簡單說一下: 假設A為前端負載均衡服務器, B,C為後端真實服務器。 A接收到數據包以後,會把數據包的MAC地址改成B的(根據調度算法,假設發給B服務器),然後把數據包重新發出去,交換機收到數據包根據MAC地址找到B,把數據包交給B。 這時B會收到數據包,同時驗證請求IP地址,由於數據包裏的IP地址是給A的,所以正常情況下B會丟棄數據包,為了防止這種情況,需要在B機器的回環網卡上配置A的IP地址。並設置ARP壓制。 1:在真實服務器上運行腳本文件 #!/bin/bash #description : start realserver VIP=192.168.10.200 /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of REALServer" /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 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 ;; stop) /sbin/ifconfig lo:0 down echo "close LVS Directorserver" echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "Usage: $0 {start|stop}" exit 1 esac VIP=192.168.10.200 大家只要修改這個地方為虛擬IP即可,別的地方都不需要改。 2:需要對腳本授權 chmod +x lvs_real.sh 3:如果腳本是在windows編輯在拷貝過去的會有問題,好像是回車換行符不同導致的。 sed -i ‘s/\r$//‘ lvs_real.sh 4:運行腳本 ./lvs_real.sh 13.健康檢查方式 virtual_server 192.168.10.200 8080 { delay_loop 6 lb_algo rr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 0 protocol TCP real_server 192.168.10.129 8080 { weight 1 TCP_CHECK { connect_port 8080 connect_timeout 5 } } real_server 192.168.10.130 8080 { weight 1 TCP_CHECK { connect_port 8080 connect_timeout 5 } } } connect_timeout 5 :連接超時時間 nb_get_retry 3 :重連次數 delay_before_retry 3 :重連間隔時間 connect_port 8080 :檢測端口
原文1
原文2
下次想分享下6系統基於圖形化的lvs+keepalived
centos7.2 搭建keepalived+lvs