lvs+keepalived+DR搭建高可用集群
环境准备:
lvsserver1 192.168.1.10
lvsserver2 192.168.1.11
vip 192.168.1.15
rs1 192.168.1.12
rs2 192.168.1.13
lvsserver1和lvsserver2操作:
1 安装ipvsadm以及keepadlived 2 [root@lvs1 ~]# yum install gcc* c++ * autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* popt-devel libnl-devel kernel-devel ipvsadm 3 [root@lvs1 ~]# wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz //不推荐使用最新版本 4 [root@lvs1 ~]# tar -xf keepalived-1.1.19.tar.gz 5 [root@lvs1 ~]# ./configure 6 Keepalived configuration 7 8 ------------------------ 9 10 Keepalived version : 1.1.17 11 Compiler : gcc 12 Compiler flags : -g -O2 13 Extra Lib : -lpopt -lssl -lcrypto 14 Use IPVS Framework : No **使用IPVS框架,也就是负载均衡模块 15 IPVS sync daemon support : No **启用IPVS同步功能 16 Use VRRP Framework : Yes **实现高可用的必须模块 17 Use LinkWatch : No 18 Use Debug flags : No 19 20 当出现这两个为No的时候,则需以下操作 21 22 [root@lvs1 ~]# ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-754.11.1.el6.x86_64/ 23 [root@lvs1 ~]# make 24 [root@lvs1 ~]# make install 25 [root@lvs1 ~]# cp -a /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ 26 [root@lvs1 ~]# cp -a /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ 27 [root@lvs1 ~]# mkdir -p /etc/keepalived 28 [root@lvs1 ~]# cp -a /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 29 [root@lvs1 ~]# cp -a /usr/local/sbin/keepalived /usr/bin/ 30 [root@lvs1 ~]# cd /etc/keepalived && cp -a keepalived.conf keepalived.conf.bak 31 [root@lvs1 ~]# cat keepalived.conf 32 [root@lvs1 ~]# cat /etc/keepalived/keepalived.conf 33 ! Configuration File for keepalived 34 35 global_defs { 36 router_id LVS_MASTER 37 } 38 39 vrrp_instance VI_1 { 40 state MASTER **标识机器的状态,从则为BACKUP 41 interface eth0 **绑定ip地址接口 42 lvs_sync_daemon_inteface eth0 43 virtual_router_id 51 **虚拟路由id,两台机器必须一样 44 priority 150 **优先级,master必须比backup大,从为100 45 advert_int 1 **间隔时间 46 authentication { 47 auth_type PASS 48 auth_pass 123456 49 } 50 virtual_ipaddress { 51 172.30.21.230 **定义一个vip 52 } 53 } 54 55 virtual_server 192.168.1.15 443 { 56 delay_loop 6 57 lb_algo wrr 58 lb_kind DR 59 #nat_mask 255.255.255.0 60 persistence_timeout 50 61 protocol TCP 62 63 real_server 192.168.1.12 443 { 64 weight 3 65 TCP_CHECK { 66 connect_timeout 3 67 nb_get_retry 3 68 delay_before_retry 3 69 connect_port 443 70 } 71 } 72 73 real_server 192.168.1.13 443 { 74 weight 3 75 TCP_CHECK { 76 connect_timeout 3 77 nb_get_retry 3 78 delay_before_retry 3 79 connect_port 443 80 } 81 } 82 } 83 84 virtual_server 192.168.1.15 2222 { 85 delay_loop 6 86 lb_algo wrr 87 lb_kind DR 88 #nat_mask 255.255.255.0 89 persistence_timeout 50 90 protocol TCP 91 92 real_server 192.168.1.12 2222 { 93 weight 3 94 TCP_CHECK { 95 connect_timeout 3 96 nb_get_retry 3 97 delay_before_retry 3 98 connect_port 2222 99 } 100 } 101 102 real_server 192.168.1.13 2222 { 103 weight 3 104 TCP_CHECK { 105 connect_timeout 3 106 nb_get_retry 3 107 delay_before_retry 3 108 connect_port 443 109 } 110 } 111 } 112 113 两台机器都启动keepalived以及ipvsadm 114 [root@lvs1 ~]# ip addr **查看vip在哪
rs1和rs2操作:
1 [root@lvs-nginx1 ~]# cat /etc/init.d/lvs 2 #!/bin/bash 3 4 VIP=192.168.1.15 5 6 /etc/rc.d/init.d/functions 7 8 case "$1" in 9 10 start) 11 echo "start LVS of RealServer DR" 12 /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up 13 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 14 echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 15 echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 16 echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 17 ;; 18 stop) 19 /sbin/ifconfig lo:0 down 20 echo "close LVS of RealServer DR" 21 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 22 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 23 echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore 24 echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 25 ;; 26 *) 27 echo "Usage: $0 {start|stop}" 28 exit 1 29 esac 30 31 exit 0 32 33 [root@lvs-nginx1 ~]# /etc/init.d/lvs start 34 [root@lvs-nginx1 ~]# echo "/etc/init.d/lvs start" >> /etc/rc.d/rc.local
最后使用ipvsadm -L查看结果以及切换演练
原文:https://www.cnblogs.com/jcici/p/10607463.html