在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页面。