Ubuntu LVS DR模式生产环境部署

简介:

1、环境说明

系统版本:ubuntu14.04

LVS服务器:14.17.64.3

真实服务器:14.17.64.4-12

VIP14.17.64.13

部署目的:用户请求14.17.64.13的报文转发至14.17.64.4-12上进行负载均衡。

 

2、安装LVS

由于LVSiptables一样是工作在内核层,所以只需要安装模块ip_vs就可以了,并没有后台进程在跑

#aptitude install ipvsadm

# ipvsadm -v

ipvsadm v1.26

# lsmod |grep ip_vs     #查看内核模块,有代表ipvsadm加载进内核当中,此时LVS安装完毕

ip_vs                 136701  0

nf_conntrack           96976  1 ip_vs

libcrc32c              12644  3 xfs,btrfs,ip_vs

 

# ipvsadm -L -n       #查看lvs规则

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

root@ubun

 

# ipvsadm -L -c   #查看连接情况

 

3、配置LVS VIP服务

-A是添加一条虚拟服务器记录,即VIP。此处配置要选择算法。

#ipvsadm -A-t 14.17.64.13  -s wrr -p 300     #代理转发所有去往该IP TCP的报文,-s指定算法wrr为加权轮询算法,-p会话保持时间(默认值是300s

#ipvsadm -A-t 14.17.64.13:80 -s wrr -p 20    #代理转发去往该IP TCP80端口的报文

 

VIP维护:

使用-E修改VIP设置

例:ipvsadm -E -t 14.17.64.13 -s wrr -p 40 #可修改会话保持时间与算法。

使用-D删除VIP设置

  例:ipvsadm -D -t 14.17.64.13    #删除该条VIP

 

4、配置LVS RIP规则

-a是添加VIP要对哪些真实服务器IP(即RIP)进行负载(默认是DR模式即-g)。

ipvsadm -a -t 14.17.64.13 -r 14.17.64.4 -g -w 1   #-r指定真实服务器IP-g为选择DR模式(-mNAT模式,-ttunnel模式),-w选择权重。

ipvsadm -a -t 14.17.64.13 -r 14.17.64.5 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.6 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.7 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.8 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.9 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.10 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.11 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.12 -g -w 1

 

#如果只对tcp 80端口进行负载,可使用如下命令

#ipvsadm -a-t14.17.64.13:80 -r 14.17.64.4:80 -g -w 1  

 

RIP维护:

使用-e修改RIP配置

    例:ipvsadm -e -t14.17.64.13 -r 14.17.64.6 -g -w 4    #修改这条RIP规则的权重。

 

使用-d删除RIP配置

    例:ipvsadm -d -t14.17.64.13 -r 14.17.64.6 -g -w 1   #删除该条RIP配置

 

5、在真实服务器上配置VIP

在真实服务器上都配置上VIP,即14.17.64.13地址。

#ifconfig lo:1314.17.64.13 netmask 255.255.255.255

 

6、在真实服务器上关闭ARP响应

关闭真实服务器上loop口的arp回应,其它口的无须关闭。

默认arp_ignorearp_announce的参数都是0,即回应所有目的IP是本机的arp请求。

在所有真实服务器上进行如下操作:

 

echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore         #只回答目标IP地址是来访网络接口本地地址的ARP查询请求。

echo "2">/proc/sys/net/ipv4/conf/all/arp_announce      #对查询目标使用最适当的本地地址

 

#此处可以进行测试,在测抑制arp前,能pingVIP地址。在抑制arp后,在前端交换机上清掉arp缓存,再ping VIP就不通了。但物理eth0网卡IP还是能通的。

arp含义参考地址:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

 

接下来在lvs上配置VIP

ifconfig lo:13 14.17.64.13 netmask255.255.255.255

 

7、开启内核转发功能

lvs上开启内核转发功能。

#echo  'net.ipv4.ip_forward=1'  >>/etc/sysctl.conf

#sysctl -p

 

8、LVS测试

由于真实服务器上未搭建http服务,但我设置的lvs是转发所有tcp连接,所以我通过sshVIP上进行测试。

 

#iptables -L -c  #查看lvs转发记录,确定请求转发成功。

TCP 14:59 ESTABLISHED 242.103.143.219.broad.bj.bj.dynamic.163data.com.cn:5197714.17.64.13:22  14.17.64.10:22

 

至此lvs搭建成功。

 

9、lvs补充思考

1、  自身无法对真实服务器保活,如果出现服务器down情况,还会向down的服务器转发请求。

         解决方法是keepalived或自已写脚本来监测连通性再清除相应规则。

2、一台LVS服务器会出现单点故障,需要有备份LVS服务器

         解决方法是keepalived来进行LVS故障接管。

 

 


     本文转自杨云1028 51CTO博客,原文链接:http://blog.51cto.com/yangrong/1574991,如需转载请自行联系原作者






相关文章
|
3月前
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
56 3
Ubuntu系统下部署flatpress轻量级博客系统
|
3月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
83 1
|
3月前
|
Kubernetes 网络安全 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
360 2
|
4月前
|
存储 关系型数据库 文件存储
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
这篇文章是关于如何在Ubuntu 22.04LTS上使用cephadm工具快速部署Ceph Reef(18.2.X)存储集群的详细教程,包括ceph的基本概念、集群的搭建步骤、集群管理以及测试集群可用性等内容。
895 8
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
|
4月前
|
Ubuntu 数据安全/隐私保护
Ubuntu22.04LTS环境部署实战
这篇文章提供了Ubuntu 22.04 LTS操作系统的详细安装步骤,包括选择语言、键盘布局、网络配置、软件源设置、磁盘分区、安装OpenSSH服务以及完成安装和首次登录系统的过程。
260 6
Ubuntu22.04LTS环境部署实战
|
4月前
|
存储 Kubernetes Ubuntu
Ubuntu 22.04LTS版本二进制部署K8S 1.30+版本
这篇文章详细介绍了在Ubuntu 22.04 LTS系统上使用VMware Fusion虚拟化软件部署Kubernetes 1.30+版本的完整过程,包括环境准备、安装containerd、配置etcd、生成证书、部署高可用组件、启动Kubernetes核心组件以及网络插件的部署和故障排查。
243 4
|
4月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
398 3
|
4月前
|
Kubernetes Ubuntu 网络安全
Ubuntu基于kubeadm快速部署K8S实战
关于如何在Ubuntu系统上使用kubeadm工具快速部署Kubernetes集群的详细实战指南。
236 2
|
4月前
|
Ubuntu 开发工具 git
在Ubuntu上部署BOA服务器的步骤
部署BOA服务器是一个涉及多个步骤的过程,包括系统更新、安装依赖、下载和编译源代码、配置服务器以及启动和验证。遵循上述步骤,可以在Ubuntu系统上成功部署BOA服务器,为开发和测试提供一个轻量级的Web服务器环境。
101 0
|
5月前
|
机器学习/深度学习 Ubuntu 数据挖掘
Ubuntu系统部署Anaconda环境及Python语言的详细流程
以上就是在Ubuntu系统中安装Anaconda环境及Python语言的详细流程。Anaconda为Python科学计算提供了便捷的管理方式,帮助用户轻松处理不同项目之间依赖管理的复杂性。通过以上步骤,你现在应该有了一个完全可用的Anaconda环境,可以开始在Ubuntu上进行Python编程和数据科学项目的探索了。
191 5