玩转Linux之LVS与keepalived组合搭建负载均衡+高可用群集

Posted Friends of the wind

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转Linux之LVS与keepalived组合搭建负载均衡+高可用群集相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

为什么用它?

企业生产系统、业务运营既要保障高效率,也要最大化降低故障出现造成的影响,keepalived的两大功能:故障切换健康检查,为企业提供了可靠的解决方案。
例如,一旦检测到主调度器处于异常状态,则自动切换到从调度器,并将故障机隔离,在未恢复正常之前不会将请求发送给它,从而保障业务不会中断。


它是什么?

keepalived的热备方式是:VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)
关键要素:一主 + 多备,共用同一个IP地址
一台主服务器,多台备用服务器,共用一个VIP(虚拟IP),对外表现一个整体,设置优先级数值不同,数值越大,优先级越高。运行正常时,优先级高的提供服务,优先级低的处于备用状态,不提供服务。


案例

在这里插入图片描述

温馨提示:公司web平台采用LVS-DR负载均衡结构,为确保web服务的持续可以,要求增加一台负载调度器,与原有调度器实现双机热备。

注意:实验环境,所有服务器关闭防火墙、setenfoce设置为宽容模式,配置IP地址、yum仓库均省略,必须做

推荐步骤

(一)、配置从调度器(192.168.2.2)

1、 安装keepalived软件、DNS软件

yum -y install keepalived
yum -y install bind
编辑keepalived.conf文件
vim /etc/keepalived/keepalived.conf

2、 修改keepalived.conf文件,指定热备信息
主要配置项及用途如下面两图,其他根据需求填写

图1
在这里插入图片描述
图2
在这里插入图片描述

3、 启动keepalived、DNS服务(每次做完更改都要重启服务,以使其生效)

systemctl start keepalived
systemctl start named

配置DNS服务,请参看玩转Linux系统之轻松搭建Nginx服务,里面有详细讲解

(二)、配置主调度器(192.168.2.1)

除了三项配置:路由器名称,热备状态是MASTER,优先级数值大于从服务器外,其他与从服务器一样。

(三)、配置web节点服务器(192.168.2.3;192.168.2.4)

1、为ens33配置IP地址,为lo:0配置VIP地址,并添加路由记录

cd  /etc/sysconfig/network-scripts/
cp  ifcfg-lo   ifcfg-lo:0
vim  ifcfg-lo:0
ifup  lo:0
route  add -host 192.168.2.254  dev  lo:0

ifcfg-lo:0内容如下:
在这里插入图片描述
2、调整内核参数,禁用ARP响应客户端请求

vim  /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
重新加载:
sysctl  -p

另一台web服务器相同的配置

3、配置httpd服务,创建测试网页

yum -y install httpd
vim /var/www/html/index.html
systemctl start httpd

web1网页内容如下:
在这里插入图片描述
web2网页内容如下:这句话英文翻译
在这里插入图片描述

4、将共享存储挂载到本地的/var/www/html目录(注意:所有节点服务器都要挂载)

临时挂载
[root@localhost yum.repos.d]# mount 192.168.2.4:/opt/wwwroot /var/www/html/
永久挂载
[root@localhost yum.repos.d]# vim  /etc/fstab
添加如下内容:
192.168.2.4:/opt/wwwroot  /var/www/html         nfs     defaults,_netdev 0  0

(四)、配置NFS共享(192.168.2.5)

安装包并启动服务,nfs-utils用于提供nfs共享服务,rpcbind用于rpc支持,非精简版默认已经安装

yum -y install rpcbind nfs-utils

1、为ens33配置IP地址,创建共享文件夹/opt/wwwroot

 mkdir -p /opt/wwwroot

2、修改共享配置文件,发布共享文件夹

vim /etc/exports

添加如下内容:
在这里插入图片描述

3、启动nfs服务及相关服务

设置为开机自启需要重启系统才能生效
systemctl enable nfs   
systemctl enable rpcbind
立即生效,但是重启系统服务处于关闭状态
systemctl start nfs
systemctl start rpcbind

(五)、测试
1、验证主、从热备,禁用主调度器的ens33网卡确认服务依然正常

未配置NFS共享前测试,禁用主调度器的ens33网卡,清除DNS缓存,通过域名仍然可以访问web服务(故障切换,DNS服务由主调度器切换到从调度器为客户机提供域名解析服务)
漂移IP地址转移到从调度器
在这里插入图片描述

在这里插入图片描述

2、禁用web服务器池的一个节点,如:web2,确认对web群集访问依然正常(故障切换到web1)
在这里插入图片描述
3、验证NFS共享存储,客户端通过域名访问显示的是共享存储同步的以下内容
在这里插入图片描述


以上是关于玩转Linux之LVS与keepalived组合搭建负载均衡+高可用群集的主要内容,如果未能解决你的问题,请参考以下文章

高可用集群之keepalived+lvs实战-技术流ken

新手搭keepalived时主备机都有虚拟IP启动问题...

LVS + Keepalived 搭建高可用的负载均衡群集

LVS+Keepalived搭建高可用负载均衡

使用keepalived搭建高可用的LVS-DR集群

LVS+Keepalived 搭建高可用群集(DR模式)