CentOS 7.3 部署LVS + Keepalived 高可用集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7.3 部署LVS + Keepalived 高可用集群相关的知识,希望对你有一定的参考价值。

技术分享图片
双击热备

在这个高度信息化的IT时代,企业的生产系统,业务运营,销售个支持
以及日常管理环节越来越依赖计算机信息和服务,使得对高可用(HA)
技术的应用需求大量上升,以便提供持续的,不间断计算机或网络

vs服务器和web-server他们必须在同一个网段内,因为LVS转发包的时候,是直接修改了包目标的MAC地址,直接扔给了rs,基于MAC地址的修改是活动在OSI二层数据链路层的,工作在数据链路层的网络设备就是交换机了,所以必须在一个交换机下面,也就是一个局域网内
为啥抑制real-server的ARP,是这样的,我们在DR模式要更改web-server的ARP的模式,arp_ignore为1是说只回答目标IP地址是来访网络接口本地地址的ARP查询请求,我们都在回环接口上配置了一个VIP,当arp模式更改以后,那么如果有谁在请求VIP的mac地址时,那么那些web-server就会回答arp广播报文了,只有lvs才会,如果没有更改arp模式,那么大家都喊我是VIP,这就乱套了。

Keepalived 双机热备

keepalived 起初是专门正对LVS 设计的一款强大的辅助工具,只要用来提供故障切换切换(FAilover)
和健康检查功能---判断LVS 负载调到器 
节点服务器的可用性,及时隔离并且替换新的服务器,当故障主机恢复后将其重新加入集群
yum install keepalived ipvsadm -y  //在线下载所需的软件

实验只准备环境为 4台 centos 7.3

其中两台为调度服务器以主服务器一个为备份服务器
另外两个提供节点服务器
yum install httpd -y //下载服务并且开启
修改网卡配置

开始调试
技术分享图片

先做简单的先调试两台点服务器的配置
1. systemctl start httpd.service  //开启服务 
2. echo "this is accp web" >/var/www/html/index.html  //生成首页
3.cp ifcfg-lo ifcfg-lo:0 //复制回环网卡 并且进行修改
4. DEVICE=lo:0
IPADDR=192.168.100.10
NETMASK=255.255.255.0
ONBOOT=yes    //就留下这三行 
5. vim /etc/init.d/web.sh //添加启动脚本致内如如下
VIP=192.168.100.10
        case "$1" in
        start)
                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP   //启动它的虚拟IP添加网段
                /sbin/route add -host $VIP dev lo:0
                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              ///接受调度服务器给与的回馈
                sysctl -p >/dev/null 2>&1
                echo "RealServer Start OK "     //优化参数 都导入到null 中俗称黑洞
                ;;
        stop)
                ifconfig lo:0 down                     //关闭 虚拟IP  并且关闭服务器给与的回馈
                route del $VIP /dev/null 2>&1
                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 "RealServer Stopd"
                ;;
        *)
                echo "Usage: $0 {start|stop}"
                exit 1
        esac
        exit 0
6. ifup lo:0    //(建议最后开启虚拟网卡)
7. service web.sh stop
8. service web.sh start(建议重启服务)
9. firefox "http://127.0.0.1/"& //进行自测检测会在后台进行打开稍等片刻
两台配置都一样 关闭防火墙 等一些阻挡访问的一些服务

技术分享图片
配置调度服务器

1. systemctl stop firewalld.service 关闭防火墙
2. 修改网卡模式 仅主机模式 
sysctl.conf这个文件是对Linux系统直接配置的文件,一些基本防护也可以从这个文件做起:
# net.ipv4.tcp_syncookies = 1
当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN×××。
3. vi /etc/sysctl.conf 
net.ipv4.ip_forward=1   //启用IP转发功能,做NAT服务或者路由时才会用到。
#proc响应关闭重定向功能 
//恶意用户可以使用IP重定向来修改远程主机中的路由表,在设计良好的网络中,末端的重定向设置是不需要的,发送和接受重定向信息包都要关闭。
net.ipv4.conf.all.send_redirects = 0   
net.ipv4.conf.default.send_redirects = 0
关闭重定向功能
net.ipv4.conf.ens33.send_redirects = 0  

4. sysctl -p //即使生效
5. cp ifcfg-ens33 ifcfg-ens33:0
6. vim ifcfg-ens33:0
DEVICE=ens33:0 //名称
ONBOOT=yes     //开启网卡
IPADDR=192.168.100.10  //虚拟IP
NETMASK=255.255.255.0  //马克地址
7. ifup ens33:0  //启动虚拟网卡//如报错则重启服务
service network restart
做到这其实就可以访问网页来进行测试了

配置调度服务器进行双机热备 先做主服务器

1. vim /etc/init.d/dr.sh  //添加脚本
GW=192.168.100.1    //网关
VIP=192.168.100.10   //虚拟IP
RIP1=192.168.100.201  //节点服务器
RIP2=192.168.100.202  //节点服务器
case "$1" in
start)
        /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm  //保存若直接启动会报错
        systemctl start ipvsadm                        //开启工具
        /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up  //开启虚拟网卡
        /sbin/route add -host $VIP dev ens33:0   //开启路由赚翻
        /sbin/ipvsadm -A -t $VIP:80 -s rr  //调度方法 轮询
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g  //启动ivsf 调度
        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g   //指定D2 的模式
        echo "ipvsadm starting --------------------[ok]"
        ;;
        stop)
        /sbin/ipvsadm -C    //关闭时该清空的清空
        systemctl stop ipvsadm
        ifconfig ens33:0 down    //当掉的当
        route del $VIP
        echo "ipvsamd stoped----------------------[ok]"
         ;;
        status)
        if [ ! -e /var/lock/subsys/ipvsadm ];then   //检测启动的时候文件存不存在 若存在则显示停止状态
        echo "ipvsadm stoped---------------"
        exit 1
                else
                echo "ipvsamd Runing ---------[ok]"
        fi
        ;;
        *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
        esac
        exit 0
2. chmod +x dr.sh
3. service dr.sh start
4. vim/etc/keepalived/
vim/etc/keepalived/    //在配置文件中对应的序列号
10    smtp_server 127.0.0.1
12    router_id LVS_01  //从的改成02
20     state MASTER  //为主服务器//BACKUP 从
22     virtual_router_id 10 //更具需求可以不改
27         auth_pass abc123  //预定义密码
30         192.168.100.10  //留下一个并且对应到虚拟IP
34 virtual_server 192.168.100.10 80 //对应虚拟IP
37     lb_kind DR   //DR模式
41     real_server 192.168.100.221 80 {  //对应的真实的地址也就是提供服务的IP
43         TCP_CHECK {   //检查
44             url {  //准备8DD 删除8行自行添加
44             cpnnect_port 80  //声明端口
41     real_server 192.168.100.221 80 {  //准备复制10行新成新的对应的证实地址IP
49     }  //此处粘贴  
       real_server 192.168.100.222 80 {
       TCP_CHECK {
            url {
            cpnnect_port 80   //一样的内容 
systemctl start keepalived.service //启动服务
systemctl status keepalived.service  //查看服务有没有开启
ip addr show dev ens33:0  //检测虚拟网卡 启用
备的服务器一样的配置

技术分享图片
技术分享图片
技术分享图片
技术分享图片技术分享图片

以上是关于CentOS 7.3 部署LVS + Keepalived 高可用集群的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7.3 部署LVS + Keepalived 高可用群集

centos 7.3 LVS的NAT模式负载均衡实操

Haproxy部署网站LB集群

构建 LVS-NAT 负载均衡群集

LVS+keepalived 高可用群集

云计算 | CentOS 7.3管理及服务部署实战