lvs+keepalived群集

keepalived热备方式

Keepalived 采用 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现 Linux 服务器的多机热备功能。VRRP 是针对路由器的一种备份解决方案——由多台路由器组成一个热备组,通过共用的虚拟IP 地址对外提供服务; 每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态。若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟 IP 地址,以继续提供服务,热备组内的每台路由器都可能成为主路由器,虚拟路由器的 IP 地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移 IP 地址。使用 Keepalived 时,漂移地址的实现不需要手动建立虚接口配置文件(如 ens33∶0),而是由 Keepalived 根据配置文件自动管理。

资源列表

操作系统

IP

主机名

Centos7.9

192.168.10.51

master

Centos7.9

192.168.10.52

node

Centos7.9

192.168.10.53

web1

Centos7.9

192.168.10.54

web2

 修改主机名

hostnamectl set-hostname master
hostnamectl set-hostname node
hostnamectl set-hostname web1
hostnamectl set-hostname web2

关闭防火墙,安全机制

systemctl stop firewalld.service
setenforce 0

安装keepalived,ipvsadm

#加载ipvs模块
modprobe ip_vs
cat /proc/net/ip_vs

yum -y install keepalived ipvsadm
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak

编辑keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   router_id master
}

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

# web 配置
virtual_server 192.168.10.100 80  {
    delay_loop 3                    # 设置健康状态检查时间
    lb_algo rr                      # 调度算法,这里用了 rr 轮询算法
    lb_kind DR                      # 这里测试用了 Direct Route 模式
   #persistence_timeout 50          # 持久连接超时时间,注意添加此项配置客户端连续请求时,请求到同一节点
    protocol TCP
        real_server 192.168.10.53 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.10.54 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 10
            retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}


#使用scp命令把配置文件传送到第二台备节点上

scp /etc/keepalived/keepalived.conf root@192.168.10.52:/etc/keepalived/

#启动服务、查看虚拟网卡vip
systemctl start keepalived
ip addr show dev ens33    

调整响应参数

#启动服务、查看虚拟网卡vip
systemctl start keepalived
ip addr show dev ens33 
   
# 调整 proc 响应参数
## 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应
## 数据包的入接口和路由后的指定的出接口是同一个接口,所以需要关闭重定向

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

在两台web服务器下载httpd

yum -y install httpd

#准备网页文件
echo "<h1>this is web1</h1>" > /var/www/html/index.html
echo "<h1>this is web2</h1>" > /var/www/html/index.html

#编写虚拟网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.10.100
NETMASK=255.255.255.255
 
#重启网卡
systemctl restart network

#设置路由
yum -y install net-tools
route add -host 192.168.10.100 dev lo:0
route -n

#调整 proc 响应参数
#添加系统只响应目的IP为本地IP的ARP请求
#系统不使用原地址来设置ARP请求的源地址,而是物理mac地址上的IP

vi /etc/sysctl.conf

#在文本末尾添加即可
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

#刷新proc参数
sysctl -p

使用浏览器访问http://192.168.10.100即可查看网页,多刷新几次即可验证负载均衡

关闭主节点的keepalived依然可以访问,即可验证高可用性

#关闭keepalived
systemctl stop keepalived

可以编写脚本执行后一直访问,关闭主节点之后验证是否还会访问成功

vim keepalived.sh

#!/bin/bash

for i in $(seq 1 1000)
do
    curl 192.168.10.100        #改为自己的VIP即可
    sleep 1
done

chmod +x keepalived.sh
./keepalived.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值