在CentOS 8/RHEL 8上设置LVS(Linux虚拟服务器)负载均衡器

时间:2020-02-23 14:31:27  来源:igfitidea点击:

如何在CentOS 8和RHEL 8 Linux系统上安装和配置LVS(Linux虚拟服务器)负载均衡器。 Linux虚拟服务器是在真实服务器集群上构建的高度可扩展且高度可用的服务器,负载平衡器在Linux操作系统上运行。

在我们的CentOS 8/RHEL 8计算机上安装Linux虚拟服务器软件包,然后将其配置为后端服务器的负载平衡器。此设置假定我们已经安装了CentOS/RHEL 8服务器或者工作站版本。

安装Linux虚拟服务器(在CentOS 8/RHEL 8上为LVS)

通过在服务器上运行以下命令来安装Linux虚拟服务器(在CentOS 8/RHEL 8上为LVS)。

$sudo yum install ipvsadm 
Last metadata expiration check: 0:11:56 ago on Thu 05 Dec 2019 09:17:32 AM EAT.
Dependencies resolved.
===================================================================================================================================================
 Package                           Arch                             Version                              Repository                           Size
===================================================================================================================================================
Installing:
 ipvsadm                           x86_64                           1.29-8.el8                           AppStream                            57 k

Transaction Summary
===================================================================================================================================================
Install  1 Package

Total download size: 57 k
Installed size: 83 k
Is this ok [y/N]: y

启用IP转发并启用服务

软件包安装后,在计算机中启用服务和IP转发。

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf 
sudo sysctl -p

确认它已变成1.

$sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

现在启动ipvsadm服务。 ipvsadm命令用于在Linux内核中配置,维护或者检查虚拟服务器表。

sudo touch /etc/sysconfig/ipvsadm 
sudo systemctl enable --now ipvsadm

服务状态应显示为以下状态:

$systemctl status ipvsadm 
● ipvsadm.service - Initialise the Linux Virtual Server
   Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; enabled; vendor preset: disabled)
   Active: active (exited) since Thu 2019-12-05 09:41:56 EAT; 4s ago
  Process: 2949 ExecStart=/bin/bash -c exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm (code=exited, status=0/SUCCESS)
 Main PID: 2949 (code=exited, status=0/SUCCESS)

Dec 05 09:41:56 centos8.novalocal systemd[1]: Starting Initialise the Linux Virtual Server...
Dec 05 09:41:56 centos8.novalocal systemd[1]: Started Initialise the Linux Virtual Server.

将LVS配置为负载均衡器。

现在,我们已经安装并启动了管理LVS防火墙所需的服务。是时候将LVS配置为实际后端应用程序的负载平衡器了。

首先清除IP表规则

sudo ipvsadm -C

添加虚拟服务

使用以下语法添加虚拟服务:

ipvsadm -A -t (ServiceIP:Port) -s (Distribution method)

支持的分配方法:rr:后端服务器之间的平均负载分配wr.wrr:加权的Round Robin基于实际服务器的权重分配rot.lc:最少连接的活动作业很少的服务器被优先分配新的负载wlc:加权的最小连接将作业分配给具有较少作业且相对于实际服务器权重(Ci/Wi)的服务器。这是默认的分发方法。

做好基于下图的配置。

在LVS服务器上,将其设置为侦听192.168.122.52端口80。

sudo ipvsadm -A -t 192.168.122.52:80 -s wlc

add添加后端服务器。语法为:

audo ipvsadm -a -t (ServiceIP:Port) -r (BackendServerIP:Port) -m

就我而言,我的配置如下所示:

sudo ipvsadm -a -t 192.168.122.52:80 -r 192.168.122.178:80 -m 
sudo ipvsadm -a -t 192.168.122.52:80 -r 192.168.122.6:80 -m

列出当前规则:

$sudo ipvsadm -l 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  cent01:http wlc
  -> cent03:http                  Masq    1      0          0         
  -> cent02:http                  Masq    1      0          0

打开防火墙上的http端口。

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

如果现在从浏览器加载LVS服务器IP或者域名,则应其中一台后端服务器上获取页面。

重新加载,应该显示后端服务器2页面。