千家信息网

LVS负载均衡-keepalived内容与配置介绍

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,下文给大家带来LVS负载均衡-keepalived内容与配置介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验来做一个
千家信息网最后更新 2025年02月02日LVS负载均衡-keepalived内容与配置介绍

下文给大家带来LVS负载均衡-keepalived内容与配置介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验来做一个解答。

内容要点:

一、keepalived :

二、配置步骤:


一、keepalived :

(1)keepalived是什么


keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

1、keepalived的三个核心模块:


  • core核心模块

  • chech健康监测

  • vrrp虚拟路由冗余协议

2、Keepalived服务的三个重要功能:


  • 管理LVS

  • 对LVS集群节点检查

  • 作为系统网络服务的高可用功能

(2)keepalived工作原理

1、keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。


2、虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。


3、keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。


二、配置步骤:

实验环境说明:


(1)准备四台虚拟机,两台为调度云服务器,两台为节点服务器;


(2)调度服务器部署 LVS 和 keepalived ,实现负载均衡和双机热备;


(3)客户端主机能够通过虚拟ip地址,访问到后台的 Web服务器的网页;


(4)实验结果验证:其中一台 DR 宕机,访问正常进行,所有服务照常运行。

角色IP地址
调度服务器 DR1(主)192.168.100.201
调度服务器 DR2 (备)192.168.100.202
节点服务器 web1192.168.100.221
节点服务器 web2192.168.100.222
虚拟 IP192.168.100.10
客户端测试机 win7192.168.100.50

第一步:配置两台 DR

(1)安装 ipvsadm 和 keepalived 包

yum install ipvsadm keepalived -y


(2)修改 /etc/sysctl.conf 文件,添加以下代码:


net.ipv4.ip_forward=1//proc响应关闭重定向功能net.ipv4.conf.all.send_redirects = 0net.ipv4.conf.default.send_redirects = 0net.ipv4.conf.ens33.send_redirects = 0
sysctl -p     这条命令是让以上配置生效


(3)配置虚拟网卡(ens33:0):


1、注意路径:/etc/sysconfig/network-scripts/


2、直接复制已有的网卡信息,加以修改即可:


cp ifcfg-ens33 ifcfg-ens33:0vim ifcfg-ens33:0 删除原来所有信息,添加以下代码:DEVICE=ens33:0ONBOOT=yesIPADDR=192.168.100.10NETMASK=255.255.255.0


3、启用虚拟网卡:

ifup ens33:0


(4)编写服务启动脚本,路径:/etc/init.d


1、vim dr.sh 脚本内容如下:


#!/bin/bashGW=192.168.100.1VIP=192.168.100.10RIP1=192.168.100.221RIP2=192.168.100.222case "$1" instart)        /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        /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g        echo "ipvsadm starting------------------[ok]"        ;;        stop)        /sbin/ipvsadm -C        systemctl stop ipvsadm        ifconfig ens33:0 down        route del $VIP        echo "ipvsamd stoped--------------------[ok]"        ;;stop)       /sbin/ipvsadm -C        systemctl stop ipvsadm        ifconfig ens33:0 down        route del $VIP        echo "ipvsamd stoped--------------------[ok]"        ;;        status)        if [ ! -e ar/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.shservice dr.sh start


(5)第二台 DR 配置和第一台一模一样,重复操作一下即可


第二步:配置第一台节点服务器 web1

(1)安装 httpd

yum install httpd -y


systemctl start httpd.service   //开启服务


(2)在站点写一个测试网页,待会后面方便验证试验结果


路径:/var/www/htmlecho "this is accp web" > index.html


(3)创建虚拟网卡


1、路径:/etc/sysconfig/network-scripts/2、复制网卡信息加以修改cp ifcfg-lo ifcfg-lo:03、vim ifcfg-lo:0删除原来所有信息,添加以下内容:DEVICE=lo:0IPADDR=192.168.100.10NETMASK=255.255.255.0ONBOOT=yes


(4)编写服务启动脚本,路径:/etc/init.d


1、vim web.sh 脚本内容如下:


#!/bin/bashVIP=192.168.100.10        case "$1" in        start)                ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP                /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/lo/arp_ignore        echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce        sysctl -p > /dev/null 2>&1        echo "RealServer Start OK "        ;;        stop)                ifconfig lo:0 down                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 Stoped"                ;;        *)                echo "Usage: $0 {start|stop}"                exit 1        esac        exit 0


2、添加权限,并执行


chmod +x web.sh           //添加权限service web.sh start      //启动服务


(5)开启虚拟网卡

ifup lo:0


(6)测试网页是否正常


第三步:配置第二台节点服务器 web2

第二台web和第一台配置一模一样,唯一不同的是,为了区分实验效果,第二台的测试网页内容换了:


路径:/var/www/htmlecho "this is benet web" > index.html


测试网页是否正常:


第四步:客户端测试

(1)配置好客户端的IP地址

(2)测试


1、与 192.168.100.10 能否互通:

2、访问网页是否正常



第五步:部署 keepalived

一、在第一台 DR 上部署:


(1)修改 keepalived.conf 文件,路径 /etc/keepalived/


修改以下内容:

(2)启动服务

systemctl start keepalived.service


二、在第二台 DR 上部署:


(1)修改 keepalived.conf 文件


(2)启动服务

systemctl start keepalived.service


第六步:实验结果验证

由于部署了 LVS 和 keepalived,目的是,负载均衡和双机热备。

此时,我们模拟一下故障,宕掉其中一台 DR1,如果客户端依旧可以和虚拟 IP地址 互通,且能够正常访问网站的话,就说明 DR2 就代替 DR1 工作了,防止单点故障的效果实现了。


(1)故障模拟:宕掉 DR1

ifdown ens33:0


(2)结果验证


1、在客户端 ping 一下虚拟ip

2、网站也依旧能够访问

看了以上关于LVS负载均衡-keepalived内容与配置介绍,如果大家还有什么地方需要了解的可以在行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,技术工程师在行业内拥有十几年的经验了。

0