LVS(Linux 虚拟服务器)与keepalived的搭建
2021/5/1 7:25:52
本文主要是介绍LVS(Linux 虚拟服务器)与keepalived的搭建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
LVS/NAT:网络地址转换方式
1、客户端请求数据,目标IP为VIP
2、请求数据达到LB负载均衡服务器,LB根据自己的调度算法将目的地址修改为RIP地址及对应端口,并连接HASH表中记录下这个连接
3、数据报从LB负载均衡服务器到达RS服务器RS3
4、然后RS3进行响应。RS3的网关必须是LB负载均衡服务器的内网IP也就是DIP,然后将数据返回给LB服务器
5、LB收到RS的返回后的数据,根据连接HASH表修改源地址VIP和目的地址DIP
缺点:NAT模式中请求的报文和响应报文都需要通过LB负载均衡服务器,造成LB负载均衡服务器的IO大量增加,
优点:NAT模式中只需要给LB负载均衡服务器配置一个公网IP地址,但是RS服务器得跟LB负载均衡服务器在同一个内网
LVS/TUN:隧道方式
工作方式不再是变换地址了,而是将请求包作为数据报进行打包,发给WS服务器,WS服务器进行两次解包,再以此次响应数据包打包直接返回客户端,不再通过LB负载均衡服务器,解决了WS服务器跟LB负载均衡服务器必须在一个内网中的问题,且效率有所提高。
LVS/DR:直接路由方式
1、DR模式将报文直接路由给目标LB负载均衡服务器
2、LB负载均衡服务器根据各个真实服务器的负载情况,连接数多少等,动态选在一台服务器,不修改目标IP和目标端口,不封装IP报文,而是将请求报文的数据帧的目标MAC改为真实服务器的MAC地址
3、然后将修改后的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是真实服务器的MAC地址,并且又在同一局域网。那么根据局域网的通信原理,真实服务器一定能够收到由LB发出的数据报。真实服务器接收到请求数据包时,解开包头发现目标IP是VIP不是自己的(需要将WS服务器的本地回环接口上面配置为VIP,且为了防止ARP响应冲突,需要将WS服务器VIP的lo接口上的ARP响应关闭掉,这里使用arptables)
4、然后真实服务器做成请求响应,之后根据自己的路由信息将这个响应数据报发回给客户
实现DR模式的LVs
首先在node01上运行:
ifconfig eth0:3 192.168.88.60/24
echo "1" > /proc/sys/net/ipv4/ip_forward
防止mac不对,但是IP地址正确的情况下,将数据报错误的扔掉。
yum install ipvsadm -y
在node2 和node 3都需要进行一下操作:
ifconfig lo:8 192.168.88.60 netmask 255.255.255.255
cd /proc/sys/net/ipv4/conf/eth0/
对arp_ignore和arp_announce文件修改,让虚拟机接收mac地址为自己的数据报
echo 2 > arp_announce
echo 1 > arp_ignore
cd /proc/sys/net/ipv4/conf/all
echo 1 > arp_ignore
echo 2 > arp_announce
安装httpd
yum install httpd -y
在/var/www/html 下创建有标志的文件
service httpd start
在node1上运行:
ipvsadm -A -t 192.168.88.60:80 -s rr
ipvsadm -a -t 192.168.88.60:80 -r 192.168.88.62 -g
ipvsadm -a -t 192.168.88.60:80 -r 192.168.88.63 -g
ipvsadm 参数详解: -C 清除表中所有的记录 -A --add-service在服务器列表中新添加一条新的虚拟服务器记录 -t 表示为tcp服务 -u 表示为udp服务 -s --scheduler 使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 默认调度算法是 wlc ipvsadm -A -t 192.168.20.100:80 -s rr -a --add-server 在服务器表中添加一条新的真实主机记录 -t --tcp-service 说明虚拟服务器提供tcp服务 -u --udp-service 说明虚拟服务器提供udp服务 -r --real-server 真实服务器地址 -m --masquerading 指定LVS工作模式为NAT模式 -w --weight 真实服务器的权值 -g --gatewaying 指定LVS工作模式为直接路由器模式(也是LVS默认的模式) -i --ipip 指定LVS的工作模式为隧道模式 -p 会话保持时间,定义流量呗转到同一个realserver的会话存留时间 ipvsadm -a -t 192.168.20.100:80 -r 192.168.20.102 -g
即可通过访问node1来调度到node2或node3
——————————————————当node1宕机的时候整个集群将无法使用,所以引用keepalived来确保node1宕机后有结点机来替换——————————————————
在node1上运行:
ifconfig eth0:3 down
ipvsadm -C
yum install keepalived -y
在node4上运行:
yum install keepalived ipvsadm -y
在node1上打开/etc/keepalived/keepalived.conf文件
将virtual_ipaddress改为
virtual_ipaddress {
#label相当于给网卡eth0起别名eth0:3
192.168.88.60/24 dev eth0 label eth0:3
}
virtual service改为:
virtual_server 192.168.88.60 80 {
delay_loop 6
real_server 192.168.88.62 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.88.63 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
修改完之后输入scp keepalived.conf node4:`pwd` 将文件传给node4
最后打开keepalived服务即可
这篇关于LVS(Linux 虚拟服务器)与keepalived的搭建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南