Centos7.2高可用集群keepalived + LVS(NAT模式)

拓扑图:

环境概述:

    LVS_Master:192.168.42.149(ens33,外网地址)  192.168.122.128(ens37,私网地址)

    LVS_backup:192.168.42.150(ens33,外网地址)  192.168.122.129(ens37,私网地址)

    Realserver1:192.168.122.130(ens33,私网地址)

    Realserver2:192.168.122.131(ens33,私网地址)

    VIP:192.168.42.180

 

部署步骤:

lvs主从安装步骤

前提工作:
关闭selinux
关闭防火墙
#开启路由转发功能
echo “1” > /proc/sys/net/ipv4/ip_forward
#安装ipvsadm
yum install ipvsadm -y
#安装keepalived
yum install keepalived -y
#编辑keepalived.conf文件
! Configuration File for keepalived
global_defs {
 notification_email {
 gengyuhao1@huawei.com #故障接受联系人
 }
 notification_email_from admin@test.com #故障发送人
 smtp_server 127.0.0.1  #本机发送邮件
 smtp_connect_timeout 30
 router_id LVS_MASTER   #BACKUP上修改为LVS_BACKUP
}



vrrp_instance VI_1 {
 state MASTER    #BACKUP上修改为BACKUP
 interface ens33
 virtual_router_id 51   #虚拟路由标识,主从相同
 priority 100    #BACKUP上修改为90
 advert_int 1
 authentication {
 auth_type PASS
 auth_pass 1111   #主从认证密码必须一致
 }
 virtual_ipaddress {  #虚拟IP(VTP)
 192.168.42.180
 }
}


vrrp_instance LAN_GATEWAY {    #定义内网网关
 state MASTER    #BACKUP上修改为BACKUP
 interface ens37    #对内网卡的名称,与后端真实服务器同网段的网卡
 virtual_router_id 50 #虚拟路由ID,主从相同
 priority 100  #BACKUP上修改为90
 advert_int 1
 authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {        #内网网关虚拟IP,也就是真实服务器的网关
 192.168.122.180
 }
}


virtual_server 192.168.42.180 80 {   #对外虚拟IP地址
 delay_loop 6    #检查真实服务器时间,单位秒
 lb_algo rr      #设置负载调度算法,rr为轮训
 lb_kind NAT     #设置LVS负载均衡NAT模式
# persistence_timeout 50    #同一IP的连接60秒内被分配到同一台真实服务器
 protocol TCP    #使用TCP协议检查realserver状态
 real_server 192.168.122.130 80 {  #第一个web节点
  weight 3          #节点权重值
  TCP_CHECK {       #健康检查方式
  connect_timeout 3 #连接超时
  nb_get_retry 3    #重试次数
  delay_before_retry 3  #重试间隔/S
   }
  }
 real_server 192.168.122.131 80 {  #第二个web节点
  weight 3
  TCP_CHECK {
  connect_timeout 3
  nb_get_retry 3
  delay_before_retry 3
    }
   }
}


#启动keepalived
systemctl start keepalived



#查看相关的lvs规则
[root@node1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.42.180:80 rr
  -> 192.168.122.130:80           Masq    3      0          0         
  -> 192.168.122.131:80           Masq    3      0          0 


#相关的日志信息在/var/log/message中

RealServer节点配置

#安装nginx
yum install nginx -y
#配置路由,设置网关为keepalived上面配置的虚拟网关192.168.122.180
route add default gw 192.168.122.180

测试访问

#通过访问VIP获取资源,由于我们采用的轮训的调度方式结果如下
[root@node1 ~]# curl http://192.168.42.180
web2
[root@node1 ~]# curl http://192.168.42.180
WEB1
[root@node1 ~]# curl http://192.168.42.180
web2
[root@node1 ~]# curl http://192.168.42.180
WEB1
由上可见,我们的测试是正常的

模拟主LVS故障,查看服务是否可以正常访问

#模拟主LVS故障,我们停掉主节点,通过将keepalived服务停掉或者关机实现,并查看被服务器的日志信息以及网络信息
#日志信息如下
Nov  6 18:55:26 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) Transition to MASTER STATE
Nov  6 18:55:26 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) Transition to MASTER STATE
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) Entering MASTER STATE
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) setting protocol VIPs.
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens33 for 192.168.42.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) Entering MASTER STATE
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) setting protocol VIPs.
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) Sending/queueing gratuitous ARPs on ens37 for 192.168.122.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:27 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on ens33 for 192.168.42.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens33 for 192.168.42.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) Sending/queueing gratuitous ARPs on ens37 for 192.168.122.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180
Nov  6 18:55:32 localhost Keepalived_vrrp[1521]: Sending gratuitous ARP on ens37 for 192.168.122.180

#网络信息如下
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a1:31:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.42.149/24 brd 192.168.42.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.42.180/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea1:3182/64 scope link 
       valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a1:31:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.128/24 brd 192.168.122.255 scope global dynamic ens37
       valid_lft 1137sec preferred_lft 1137sec
    inet 192.168.122.180/32 scope global ens37
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea1:318c/64 scope link 
       valid_lft forever preferred_lft forever

    由此可见,当主LVS故障的时候,备用LVS会接收对应的VIP以及虚拟网关作为提供服务的LVS

#继续测试访问
[root@node1 ~]# curl http://192.168.42.180
web2
[root@node1 ~]# curl http://192.168.42.180
WEB1
[root@node1 ~]# curl http://192.168.42.180
web2
[root@node1 ~]# curl http://192.168.42.180
WEB1

    服务正常提供访问

#重新启动主LVS,会抢占主服务节点,备用节点又会被下放
#备用节点日志信息
Nov  6 19:01:06 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) Received advert with higher priority 100, ours 90
Nov  6 19:01:06 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) Entering BACKUP STATE
Nov  6 19:01:06 localhost Keepalived_vrrp[1521]: VRRP_Instance(LAN_GATEWAY) removing protocol VIPs.
Nov  6 19:01:06 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) Received advert with higher priority 100, ours 90
Nov  6 19:01:06 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) Entering BACKUP STATE
Nov  6 19:01:06 localhost Keepalived_vrrp[1521]: VRRP_Instance(VI_1) removing protocol VIPs.


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值