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 [email protected]     #定义发件人
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 [email protected]
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 20:51
下一篇 2017-05-13 21:30

相关推荐

  • Linux权限管理练习

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作? 无法cd切换进入此目录,无法创建文件,无法删除文件,无法查看里面文件的内容,只能ls列出目录下的内容 2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作? 无法ls查看目录下的内容 3、当用户wangcai 对/testdir 目录无写权…

    Linux干货 2016-08-05
  • N21_第09周_shell脚本

    作业题目: 1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; 预置条件: [root@zhouyong148 N21_09]# cat /etc/passwd root:x:0:0:root:/root:/b…

    Linux干货 2016-11-14
  • Linux bash中的命令行展开介绍及应用示例

    Linux bash中的命令行展开介绍及应用示例 在Linux bash中可以使用命令行展开特性一步完成需要分开成多步完成的操作,达到事半功倍的效果。在Linux指令参数位置使用"{}" 将相应的参数括起来,括号中的参数以逗号分隔,然后bash在执行这一指令时会自动将括号中的内容进行展开。 相关示例如下: 同时创建多个目录,在/tmp目录…

    Linux干货 2016-11-07
  • 马哥教育网络班第21期+第四周课程作业

    1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 chmod –R 700 /home/tuser1 2. 编辑/etc/group文件,添加组hadoop。 echo &q…

    Linux干货 2016-08-01
  • date命令常见用法。

    date是一个非常实用的小工具,可以查看时间,并且也可以添加选项去完成自己想完成的东西。

    Linux干货 2017-11-13
  • Linux中/etc/passwd、/etc/shadow文件字段的含义以及用处

        今天本人学习到了两个个Linux中非常重要的文件,它们承载着Linux用户的相关信息,如果在账号方面出现一些密码相关的问题,就可以来找这两个文件查看和分析一番。     他们分别是/etc/passwd和/etc/shadow两个文件,他们都存放于/etc目录中,都可以使用cat命令来查看其内容。  …

    Linux干货 2016-01-14