当前位置: 首页 > article >正文

基于 openEuler 构建 LVS-DR 群集

1、环境准备

机器名称IP配置服务角色备注
open_Euler1192.168.121.150Director Server负载均衡服务器
open_Euler2192.168.121.151Real Server1(RS1)web服务器1
open_Euler3192.168.121.152Real Server2(RS2)web服务器2
Rocky8192.168.121.160Client客户端

2、配置LVS-DR 

2.1 RS配置

1.web服务软件配置

#两台RS都要配置哦
[root@open-Euler2 ~]# yum install nginx -y

[root@open-Euler3 local]# cd /usr/share/nginx/html/
[root@open-Euler3 html]# ll
total 16
-rw-r--r-- 1 root root 3454 Aug 28 14:40 404.html
-rw-r--r-- 1 root root 3497 Aug 28 14:40 50x.html
-rw-r--r-- 1 root root 3510 Aug 28 14:40 index.html
-rw-r--r-- 1 root root  368 Aug 28 14:40 nginx-logo.png

[root@open-Euler2 html]# echo "web test page,ip is `hostname -I`" > index.html 

[root@open-Euler2 html]# cat index.html 
web test page,ip is 192.168.121.151 

[root@open-Euler2 html]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

[root@open-Euler2 html]# curl localhost
web test page,ip is 192.168.121.151 

2.新建dummy连接并设置VIP

[root@open-Euler2 html]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.121.155/32
Connection 'dummy-dummy1' (967d390d-a061-4093-a8bf-dabfa594ff8f) successfully added.
[root@open-Euler2 html]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:d2:55:f0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.151/24 brd 192.168.121.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed2:55f0/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether d2:3f:51:40:4d:b3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.155/32 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::319b:601d:7ca6:d862/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

#!!!open-Euler3和open-Euler2一样的操作

Linux Dummy 接口基础概念
Dummy 接口 是 Linux 操作系统中的一个虚拟网络接口,它不与任何物理硬件设备关联,主要用于测试和配置网络环境。Dummy 接口可以模拟一个网络接口,允许你在没有实际网络硬件的情况下进行网络相关的操作和测试。

3.ARP抑制

[root@open-Euler2 html]# vim /etc/sysctl.conf #两台RS的该文件下添加以下内容
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.dummy1.arp_ignore=1
net.ipv4.conf.dummy1.arp_announce=2

2.1 配置LVS负载均衡服务

1.新建dummy连接并设置VIP

[root@localhost html]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.121.155/32
Connection 'dummy-dummy1' (d2e66b9b-3e6a-4e8a-9666-d9aeca39a444) successfully added.
[root@localhost html]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a6:7a:36 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.150/24 brd 192.168.121.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea6:7a36/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether c2:aa:c3:a0:56:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.155/32 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::7141:4a0e:46aa:7611/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2.下载管理IP虚拟服务器(IPVS)的命令行工具

[root@localhost html]# yum install ipvsadm -y

3.手工执行配置添加LVS服务并增加两台RS

[root@localhost html]# ipvsadm -A -t 192.168.121.155:80 -s rr
[root@localhost html]# ipvsadm -a -t 192.168.121.155:80 -r 192.168.121.151:80 -g
[root@localhost html]# ipvsadm -a -t 192.168.121.155:80 -r 192.168.121.152:80 -g
[root@localhost html]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.121.155:80 rr
  -> 192.168.121.151:80           Route   1      0          0         
  -> 192.168.121.152:80           Route   1      0          0  

                     
[相关参数说明]
[root@Directory ~]# ipvsadm –help
-A  添加虚拟服务器
-t  设置群集地址(VIP,Virtual IP)
-s  指定负载调度算法
-a  添加真实服务器
-d  删除真实服务器
-r  指定真实服务器(Real Server)的地址
-m  使用NAT模式;-g、-i分别对应DR、TUN模式
-w  为节点服务器设置权重,默认为1

3.测试

[root@Rocky8 ~]# for ((i=1;i<=6;i++));
> do
> curl 192.168.121.155
> done
web test page,ip is 192.168.121.152 
web test page,ip is 192.168.121.151 
web test page,ip is 192.168.121.152 
web test page,ip is 192.168.121.151 
web test page,ip is 192.168.121.152 
web test page,ip is 192.168.121.151 
[root@Rocky8 ~]# 

这样就可以看到轮询算法rr的效果了


http://www.kler.cn/a/542780.html

相关文章:

  • Maven 中常用的 scope 类型及其解析
  • 语义分割文献阅读——SETR:使用Transformer从序列到序列的角度重新思考语义分割
  • 100.15 AI量化面试题:PPO与GPPO策略优化算法的异同点
  • 评估多智能体协作网络(MACNET)的性能:COT和AUTOGPT基线方法
  • 《DeepSeek技术应用与赋能运营商办公提效案例实操落地课程》
  • (篇六)基于PyDracula搭建一个深度学习的软件之新版本ultralytics-8.3.28调试
  • 【ESP32】ESP-IDF开发 | WiFi开发 | HTTP服务器
  • Python基于 Flask 创建简单Web服务并接收文件
  • 头条百度批量采集软件说明文档
  • 2021版小程序开发5——小程序项目开发实践(2)-完
  • Harmony OS和Android 区别
  • 实现限制同一个账号最多只能在3个客户端(有电脑、手机等)登录(附关键源码)
  • C/C++混合读入cin与scanf问题
  • Go1.24 strings包增加的新方法
  • java安全中的类加载
  • 【Apache Paimon】-- 作为一名小白,如何系统地学习 Apache paimon?
  • Unity使用iTextSharp导出PDF-05页面事件
  • RESTful API 和 WebSocket 的区别
  • BootstrapBlazor Table组件 使用的注入 数据服务 实现类:使用 EF Core
  • Spring Cloud 07 - 分布式链路追踪APM
  • Acwing-基础算法课笔记之基础算法(差分)
  • Wiki文档转换为Word技术
  • 使用C语言实现MySQL数据库的增删改查操作指南
  • Java90道面试题
  • 利用邮件合并将Excel的信息转为Word(单个测试用例转Word)
  • 创建和使用 Python 虚拟环境(使用Python自带的venv模块)