博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lvs+keepalived群集
阅读量:6252 次
发布时间:2019-06-22

本文共 5025 字,大约阅读时间需要 16 分钟。

lvs+keepalived群集

一、top图:
dir1:192.168.146.31
dir2:192.168.146.32
rs1:192.168.146.33
rs2:192.168.146.34
二、安装ipvsadm和keepalived :
dir1:
#yum install gcc gcc-c++ -y
#yum install kernel-devel -y
#yum
-y install keepalived ipvsadm

#modprobe ip_vs

#yum install libnl -y
dir2:
#yum install gcc gcc-c++ -y
#yum install kernel-devel -y
#yum
-y install keepalived ipvsadm

#modprobe ip_vs

#yum install libnl -y
三、修改配置文件:

cd /etc/keepalived/

vim keepalived.conf

global_defs {

notification_email {

root@localhost                         #默认三个地址,修改可用地址

}

notification_email_from root@localhost

smtp_server localhost

smtp_connect_timeout 30

router_id xuegod63 #标识当前节点名字,两个节点的此项需要不相同。

}

#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。

vrrp_instance apache { #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改,双击可以定义2个实例。

state MASTER        #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可interface eth0          #绑定虚拟 IP 的网络接口virtual_router_id 51    #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组priority 100            #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低advert_int 1             #组播信息发送间隔,两个节点设置必须一样authentication {         #设置验证信息,两个节点必须一致    auth_type PASS    auth_pass 1111}virtual_ipaddress {    192.168.146.30       #指定虚拟 IP, 两个节点设置必须一样}

}

#类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.70:80 -s rr

virtual_server 192.168.146.30 80 { #对虚拟IP63添加LVS相关内容

delay_loop 6                    #Keepalived 多长时间监测一次 RSlb_algo rr                      #分发算法lb_kind DR                      #DR 模式nat_mask 255.255.255.0persistence_timeout 50  #同一IP 50秒内的请求都发到同个real server ,这个会影响LVS的 rr 调度算法, 同一 IP 超过 50 秒后,再次访问,才会被转发到另一台 real server 上。 persistence 持久性的意思,#如果要测试是否轮询就要删除这行代码protocol TCPreal_server 192.168.146.33 80 { #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP 不端口之间用空格隔开    weight 1    #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器     TCP_CHECK {     #这段内容手动添加,爸以前的内容删除            connect_timeout 3       #表示 3 秒无响应超时            nb_get_retry 3          #表示重试次数            delay_before_retry 3    #表示重试间隔            connect_port 80         #检测端口            }}real_server 192.168.146.34 80 {    weight 1    TCP_CHECK {            connect_timeout 3            nb_get_retry 3            delay_before_retry 3            connect_port 80            }}

}

vrrp_instance nginx {

state BACKUPinterface eth0virtual_router_id 52priority 90advert_int 1authentication {    auth_type PASS    auth_pass 11112}virtual_ipaddress {    192.168.146.29}

}

virtual_server 192.168.146.29 80 {

delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0persistence_timeout 50   #如果要测试是否轮询就要删除这行代码protocol TCP

real_server 192.168.146.33 80 {

weight 1    TCP_CHECK {        connect_timeout 3        nb_get_retry 3        delay_before_retry 3

connect_port 80

}

}

real_server 192.168.146.34 80 {

weight 1        TCP_CHECK{        connect_timeout 3        nb_get_retry 3        delay_before_retry 3

connect_port 80

}}

}

四、2个rs服务器上建立测试网页文件

yum install -y httpd php -y

service httpd restart

echo rs1 > /var/www/html/index.html

#echo rs2 > /var/www/html/index.html #第2台机器

五、rs1和rs2配置vip:

vim /etc/init.d/lvsrsdr

#!/bin/bash

#chkconfig:2345 80 90

#description:start relserver

VIP=192.168.146.30

source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量)

case $1 in

start)

echo 'start LVS of Realserver DR'    /sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up    /sbin/route add -host $VIP dev lo:1    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:1 down    echo 'Close LVS of Realserver DR'    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

chmod +x /etc/init.d/lvsrsdr

#/etc/init.d/lvsrsdr start

#chkconfig --add lvrsdr

#chkconfig lvsrsdr on

vim /etc/init.d/lvsrsdr2

#!/bin/bash

#chkconfig:2345 80 90

#description:start relserver

VIP=192.168.146.29

source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量)

case $1 in

start)

echo 'start LVS of Realserver DR'    /sbin/ifconfig lo:2 $VIP broadcast $VIP netmask 255.255.255.255 up    /sbin/route add -host $VIP dev lo:2    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:2 down    echo 'Close LVS of Realserver DR'    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

chmod +x /etc/init.d/lvsrsdr2

#/etc/init.d/lvsrsdr start

#chkconfig --add lvrsdr2

#chkconfig lvsrsdr2 on

打开一个测试机器 :

curl

或者:

elinks -dump

转载于:https://blog.51cto.com/hzcto/2405330

你可能感兴趣的文章
php 下载word 含图片
查看>>
栈的顺序存储实现
查看>>
编年史:OI算法总结
查看>>
IOS Exception 1(RangeText="[SKTexture]()")
查看>>
IOCP基础封装
查看>>
sass学习
查看>>
javascript基础篇:函数
查看>>
单调队列
查看>>
【原创】C#通用权限管理-程序安全检查,这些你一定要考虑到位
查看>>
Ubuntu完全教程,让你成为Ubuntu高手!
查看>>
vue父子通信的基本使用
查看>>
jquery.cookie 介绍 和 用法
查看>>
[CI] 使用Jenkins自动编译部署web应用
查看>>
SVN与TortoiseSVN实战:补丁详解
查看>>
Centes7 使用 xshell 登陆
查看>>
TestNG源代码分析:依赖管理的实现
查看>>
VMWare 安装时报错 tools-windows.msi failed报错解决办法
查看>>
java一些面试题
查看>>
如何使用dll和lib
查看>>
干货型up主
查看>>