keepalived 是解決單故障節點的軟件
1、 keepalived+LVS/DR
2、 任意單故障節點 的 高可用
作 分發器 的 高可用
用 keepalived 作 LVS/DR 模式 分發器 的 高可用
實驗拓撲
client
node1主、node2備
webA 、webB
浮動資源有: 浮動ip、策略
IP 規劃
client 192.168.4.254
node1 192.168.4.50
node2 192.168.4.55
浮動ip(vip) 192.168.4.252
webA 192.168.4.51
webB 192.168.4.52
配置步驟
#chkconfig iptables off #取消開機自起
#service iptables stop #關閉防火牆
#setenforce 0 #關閉selinux
1 配置好網絡環境 所有地址的IP
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.4.50
NETMASK=255.255.255.0
GATEWAY=192.168.4.10
DNS1=202.106.0.20
...
#service network restart #systemctl restart NetworkManager
2 配置webA、B 服務自定義Web頁面
#yum install -y httpd
#echo “192.168.4.51” > /var/www/html/index.html
#echo “192.168.4.52” > /var/www/html/index.html
#service httpd start ; chkconfig httpd on #rhel6
#systemctl start httpd;systemctl enable httpd #rhel7
配置webA、B的vip 和DR模式的網絡配置
臨時修改方法可寫在/etc/rc.local文件裏開機執行
#ifconfig lo:1 192.168.4.252/32
#echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
#echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
永久修改方法
#vim /etc/sysctl.conf
.. ..
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#sysctl -p
在node1、node2 分別安裝 keepalived 軟件包
#yum -y install keepalived ipvsadm
修改配置node1
#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.252
}
}
virtual_server 192.168.4.252 80 {
delay_loop 6
lb_algo rr #集羣算法
lb_kind DR #DR模式
nat_mask 255.255.255.0
#persistence_timeout 50 #堅持時間同一客戶端50秒內訪問分配同一服務器註釋掉實現實時輪詢
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.51 80 {
weight 1
}
real_server 192.168.4.52 80 {
weight 1
}
}
node2:
#vim /etc/keepalived/keepalived.conf
state MASTER
priority 150
#systemctl start keepalived
#ipvsadm -Ln