keepalived高可用双主lvs-dr模型集群

keepalived高可用双主lvs-dr模型集群
keepalived高可用双主lvs-dr模型集群
环境 centos6.8
在keepalived服务器上安装keepalived RS服务器上安装nginx ,安装过程省略
为了便于实验,四台机器将关闭iptables和selinux

配置如下:

K1:

#修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
root@localhost            #邮件地址
}
notification_email_from Alexandre.Cassen@firewall.loc     #定义发件人
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 192.168.37.133   #此为keepalived1服务器的IP
vrrp_mcast_group4 224.0.100.32     #定义多播地址
}
vrrp_instance nginx1 {       #节点名称
state BACKUP                #节点模式
interface eth0            #指定网卡名
virtual_router_id 51
priority 95            #权重
advert_int 1            #健康检查间隔时间,生产环境配置请慎重
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {         #指定VIP
192.168.37.200/16 dev eth0
}
}
virtual_server 192.168.37.200 80{      #指定虚拟服务器
delay_loop 6                          
lb_algo wrr                       #循环模式
lb_kind DR                        #LVS工作模式
protocol TCP                       #协议
real_server 192.168.37.134 80     #真实物理机的ip和端口
{
weight 2                         #权重
HTTP_GET {                      #健康检查的模式
url {
path /
status_code 200                  #如果返回状态码为200,则视为服务器健康   
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {           #定义第二台真实服务器
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }
   
vrrp_instance nginx2 { #定义第二台虚拟服务器
state MASTER
interface eth0
virtual_router_id 34
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.37.201/16 dev eth0
}
}
virtual_server 192.168.37.201 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }

#启动keeplived
service keepalived restart
K2:

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id 192.168.37.130
vrrp_mcast_group4 224.0.100.32
}
vrrp_instance nginx1 {
state MASTER
interface eth0
virtual_router_id 51
priority100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.37.200/16 dev eth0
}
}
virtual_server 192.168.37.200 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }
   
vrrp_instance nginx2 {
state BACKUP
interface eth0
virtual_router_id 34
priority 95
advert_int 1
authentication {
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.37.201/16 dev eth0
}
}
virtual_server 192.168.37.201 80{
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.37.134 80
{
weight 2
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.37.135 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
} } }

#启动keeplived
service keepalived restart
RS1:
#修改Nginx的首页为
echo “lvs1 RS1:192.168.37.135” > /usr/share/nginx/html/index.htm
#添加脚本
vim setpara.sh
   
    
vim setpara.sh
vip=192.168.37.200
vip2=192.168.37.201
mask='255.255.255.255'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 $vip netmask $mask broadcast $vip up
rgoute add -host $vip dev lo:0
ifconfig lo:1 $vip2 netmask $mask broadcast $vip2 up
rgoute add -host $vip2 dev lo:0
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage $(basename $0) start|stop"
exit 1
;;
esac

#执行脚本

 bash setpara.sh start

#配置完毕,启动Nginx
service nginx restart
RS2:
修改Nginx的首页为
echo “lvs1 RS2:192.168.37.134” > /usr/share/nginx/html/index.html
添加脚本
   
    
vim setpara.sh
vip=192.168.37.200
vip2=192.168.37.201
mask='255.255.255.255'
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig lo:0 $vip netmask $mask broadcast $vip up
rgoute add -host $vip dev lo:0
ifconfig lo:1 $vip2 netmask $mask broadcast $vip2 up
rgoute add -host $vip2 dev lo:0
;;
stop)
ifconfig lo:0 down
ifconfig lo:1 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
;;
*)
echo "Usage $(basename $0) start|stop"
exit 1
;;
esac

#执行脚本 

bash setpara.sh start

#配置完毕,启动Nginx

service nginx restart


有关keepalived配置问题,已及LVS-DR模式的ARP抑制原理随后更新。


原创文章,作者:cnc,如若转载,请注明出处:http://www.178linux.com/75374

(0)
cnccnc
上一篇 2017-05-13
下一篇 2017-05-13

相关推荐

  • Linux 第八天: Linux文本编辑器vim

    Linux 第八天: (08月09日) Linux文本编辑器vim       sed 行编辑器 stream EDitor sed -n 不输出模式空间内容的自动打印sed -e 多点编辑sed -f /PATH/TO/SCRIPTFILEsed -i 原处编辑   script单地址 # 指定的行/pattern/…

    Linux干货 2016-08-11
  • 浅谈筛选日志中的IP地址信息

    作为运维人员,经常会需要会对日志中的某些重要信息进行筛选,比如说ip等参数。 案例一:筛选出IP地址信息 日志信息如下: [root@C67-X64-A1 hanghang]# cat test.txt  Jul 13 08:13:09 localhost sshd[14678]…

    系统运维 2016-07-22
  • 网络班第27期第二周作业

    1、 Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关的实例演示。 cp命令:copy 文件à>目录 文件à>文件 目录->文件(报错)           目录->目录 常用选项:     &nbsp…

    2017-07-31
  • 8.5作业

    找出ifconfig命令结果中本机的所有ipv4地址 [root@English6 wang]# ifconfig |grep -o "[1-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" 192.168.1.113 192.168…

    Linux干货 2016-08-09
  • N21_第8周_网络

    N21_第8周_网络 作业题目: 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥:(Bridge)也称桥接器,是连接两个局域网的存储转发设备,用它可以完成具有相同或相似体系结构网络系统的连接。       &nbs…

    Linux干货 2016-10-09
  • bash特性及bash脚本编程初步

    终端,附着在终端的接口程序: GUI:KDE, GNome, Xfce CLI:/etc/shells bash zsh fish   bash的特性: 命令行展开:~, {} 命令别名:alias, unalias 命令历史:history 文件名通配:glob 快捷键:Ctrl+a, e, u, k, l 命令补全:$PATH 路径补全: &n…

    Linux干货 2016-11-21