LVS+Keepalived群集

 资源列表

操作系统

配置

主机名

IP地址

CentOS 7.9

2C4G

lb01

192.168.86.120

CentOS 7.9

2C4G

lb02

192.168.86.121

CentOS 7.9

2C4G

web01

192.168.86.122

CentOS 7.9

2C4G

web02

192.168.86.123

基础环境

·关闭防火墙

systemctl stop firewalld systemctl disable firewalld

·关闭内核机制

setenforce 0 sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

·修改主机名

hostnamectl set-hostname lb01 hostnamectl set-hostname lb02 hostnamectl set-hostname web01 hostnamectl set-hostname web02

一、部署web节点

        安装httpd服务,两台web节点都要布置

yum -y install httpd systemctl enable httpd --now echo 'this is web01' > /var/www/html/index.html

二、布置主节点

        加载 ip_vs 模块

modprobe ip_vs cat /porc/net/ip_vs

        安装 ipvsadm 管理工具和 Keepalived

yum -y install ipvsadm keepalived

        修改配置文件

                # 打开配置文件,并把所有的内容删除,把以下内容粘贴上去

                vi /etc/keepalived/keepalived.conf


! Configuration File for keepalived
global_defs {
   router_id LB01
}

vrrp_instance VI_1 {
    state MASTER            # 两个 DS,一个为 MASTER 一个为 BACKUP
    interface ens33         # 当前 IP 对应的网络接口,通过 ifconfig 查询
    virtual_router_id 62    # 虚拟路由 ID(0-255),在一个 VRRP 实例中主备服务器 ID 必须一样
    priority 200            # 优先级值设定:MASTER 要比 BACKUP 的值大
    advert_int 1            # 通告时间间隔:单位秒,主备要一致
    authentication {        # 认证机制,主从节点保持一致即可
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.86.110       # VIP,可配置多个
    }
}

# web 配置
virtual_server 192.168.86.110 80  {
    delay_loop 3                    # 设置健康状态检查时间
    lb_algo rr                      # 调度算法,这里用了 rr 轮询算法
    lb_kind DR                      # 这里测试用了 Direct Route 模式
    # persistence_timeout 50          # 持久连接超时时间,注意添加此项配置客户端连续请求时,请求到同一节点,测试环境建议注释掉
    protocol TCP
    real_server 192.168.86.121 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10   
            retry 3            # 旧版本为 nb_get_retry 
            delay_before_retry 3  # 重试间隔3秒 
            connect_port 80
        }
    }
    real_server 192.168.86.122 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

三、布置备份节点

        加载 ip_vs 模块

modprobe ip_vs cat /porc/net/ip_vs

        安装 ipvsadm 管理工具和 Keepalived

yum -y install ipvsadm keepalived

        修改配置文件

                # 打开配置文件,并修改以下内容

                vi /etc/keepalived/keepalived.conf

   router_id LB02
   state BACKUP
   priority 20  

        调整proc响应参数

echo 'net.ipv4.conf.all.send_redirects = 0' >> /etc/sysctl.conf 
echo 'net.ipv4.conf.default.send_redirects = 0' >> /etc/sysctl.conf 
echo 'net.ipv4.conf.ens33.send_redirects = 0' >> /etc/sysctl.conf 
sysctl -p

启动 Keepalived

systemctl start keepalived

四、测试

        在web节点中编写脚本

               [root@web01 ~]#  vi start.sh

#!/bin/bash 
SNS_VIP=192.168.207.200
case "$1" in
start)
       ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
       /sbin/route add -host $SNS_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"
       ;;
stop)
       ifconfig lo:0 down
       route del $SNS_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 Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

                [root@web01 ~]# sh start.sh start # 执行脚本        

        开一台客户机用curl命令测试

[root@localhost ~]# curl 192.168.86.110
this is web02
[root@localhost ~]# curl 192.168.86.110
this is web01

在客户机中编写脚本测试

[root@localhost ~]# cat test.sh 
#!/bin/bash

for i in $(seq 1 1000)
do
    curl 192.168.86.110
    sleep 1
done
# 执行脚本,并把主节点服务器关闭测试,如果脚本没有报错就是成功了
[root@localhost ~]# sh test.sh    

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值