LVS集群-NAT模式

网友投稿 331 2022-11-04


LVS集群-NAT模式

1): 请求报文, 相应报文, 都需要经过我们分发器, 如果数据量大, 分发器将是我们的瓶颈2): 只需要一个公网IP就可以完成集群的构建, 相对来说, 安全性还不错3): VIP DIP RIP CIP 4): director是一个单点的, 如果director挂了, 这个集群就完蛋了5): ip_vs在低版本中, 是不具有健康状态监测, 在高版本中, 有非常弱的监测功能, 不适合生产使用

1.1 实例1: LVS NAT模式

实验前期准备:1、准备3台主机2、iptables -F , 清除规则3、/etc/selinux/config,关SELinux#getenforceDisabled

1.2 真实环境中的拓扑图

1.3 集群各节点IP注解:

客户端计算机的IP(CIP):可能是一个本地的、与VIP在同一网络的私有ip地址,或者是一个因特网上的公共ip地址。用作向集群发送请求的源ip地址虚拟IP(VIP):Director用于向客户端提供服务的ip地址Director的IP(DIP):在Director的VIP上接收访问集群服务的请求,这些请求通过DIP转发出去抵达各个集群节点真实real server IP(RIP):在LVS术语中,向外部世界提供服务的节点叫做真实服务器,因此在真实服务器上使用的ip地址叫做真实ip地址(RIP)。精简版,实验拓扑图:

1.4 配置LVS:

k8s02配置成分发器:1、打开路由转发功能[root@k8s02 sysctl.d]# cat /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1让配置生效:sysctl -p2、配置网络环境:添加一个网卡(需要两张网卡), 配置成以下网络环境:ens37 192.168.20.129 模式:br0 模拟公网ens33 192.168.10.132 模式:vmnet4 模拟内网cd /etc/sysconfig/network-scripts/cp ifcfg-ens33 ifcfg-ens37[root@k8s02 network-scripts]# cat ifcfg-ens37TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noDEFROUTE=yesBOOTPROTO=staticIPADDR=192.168.20.129NETMASK=255.255.255.0GATEWAY=192.168.20.2DNS1=192.168.1.1IPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens37DEVICE=ens37ONBOOT=yessystemctl restart networkDirector分发器:需不需要开启80(服务的)端口 ?

1.5 安装: LVS管理工具: ipvsadmin

rpm -ivh ipvsadm-1.25-9.el6.x86_64.rpm或:yum install ipvsadm

1.6 使用ipvsadm命令设置规则:

ipvsadm -A -t 192.168.20.129:80 -s rr rr代表轮循 选项: -A 添加虚拟服务器 -t 表示TCP的服务 VIP:PORT -s 指定调度算法 rr表示round-robin 轮循ipvsadm -a -t 192.168.20.129:80 -r 192.168.10.133 -mipvsadm -a -t 192.168.20.129:80 -r 192.168.10.134 -m选项: -a 表示添加real server的地址 -r 指定real server的IP地址 -m 表示masquerade 也就是NAT方式的LVS

1.7 查看

Ipvsadm命令,用于配置及查看内核IPVS表和算法的工具,类似于iptables[root@k8s02 network-scripts]# ipvsadm -L -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.20.129:80 rr -> 192.168.10.133:80 Masq 1 0 0 -> 192.168.10.134:80 Masq 1 0 0

1.8 保存配置或规则

[root@k8s02 ~]# ipvsadm --save >/etc/sysconfig/ipvsadm[root@k8s02 ~]# cat !$cat /etc/sysconfig/ipvsadm-A -t k8s02:-s rr-a -t k8s02:-r k8s03:-m -w 1-a -t k8s02:-r k8s04:-m -w 1

1.9 配置真实服务器

RealServer:在k8s03和k8s04上面配置:准备:1、配置IP:REAL SERVER自己的网络相关信息配置成如下:k8s03: ens33:192.168.10.133 网关: 192.168.10.132k8s04: ens33:192.168.10.134 网关: 192.168.10.132##网关配置为k8s02的ipcat /etc/sysconfig/network-scripts/ifcfg-ens33GATEWAY=192.168.10.1322、配置k8s03为realserver, 并启web服务yum install -y restart "192.168.10.133" > /var/ #(实验期间,各个服务器的页面不同)3、配置k8s04为realserver, 并启web服务yum install -y restart "192.168.10.134" > /var/ #(实验期间,各个服务器的页面不同)

1.10 测试:

在k8s02上测试:yum install -y elinks 测试realserver :[root@k8s02 ~]# elinks 192.168.10.133 --dump 192.168.10.133[root@k8s02 ~]# elinks 192.168.10.134 --dump 192.168.10.134

1.11 测试VIP

[root@k8s02 network-scripts]# elinks 192.168.20.129 --dump 192.168.10.134[root@k8s02 network-scripts]# elinks 192.168.20.129 --dump 192.168.10.133

1.12 扩展ipvsadm 更多参数说明

-L -n ==> 查看规则,显示内核虚拟服务器表 -L -n -c ==> 查看客户端连接分发器和real server 的情况例1:[root@k8s02 network-scripts]# ipvsadm -L -n -cIPVS connection entriespro expire state source virtual destinationTCP 01:59 FIN_WAIT 192.168.20.1:51184 192.168.20.129:80 192.168.10.134:80TCP 00:36 TIME_WAIT 192.168.20.1:51153 192.168.20.129:80 192.168.10.134:80TCP 00:38 TIME_WAIT 192.168.20.1:51103 192.168.20.129:80 192.168.10.134:80TCP 01:38 TIME_WAIT 192.168.20.1:51132 192.168.20.129:80 192.168.10.133:80TCP 01:07 TIME_WAIT 192.168.20.1:51166 192.168.20.129:80 192.168.10.133:80选项:-L -n --stats ==> 查看分发情况-L -n --rate ==> 查看速率-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)例2:ipvsadm -Zipvsadm -L -n --statsIP Virtual Server version 1.2.1 (size=4096)选项:-Z --clear 清空IPVS的数据、等信息例3: ipvsadm -C选项:-C 清空所有规则LVS的规则配置文件:/etc/sysconfig/ipvsadm

附录:ipvsadm命令选项解释:

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。 -E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。 -D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。 -C --clear 清除内核虚拟服务器表中的所有记录。 -R --restore 恢复虚拟服务器规则 -S --save 保存虚拟服务器规则,输出为-R 选项可读的格式 -a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器 -e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录 -d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录 -L|-l --list 显示内核虚拟服务器表 -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等) --set tcp tcpfin udp 设置连接超时值 --start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived的VRRP 功能。 --stop-daemon 停止同步守护进程 -h --help 显示帮助信息 其他的选项: -t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port] -u --udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port] -f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。 -s --scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc. -p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。 -M --netmask netmask persistent granularity mask -r --real-server server-address 真实的服务器[Real-Server:port] -g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式) -i --ipip 指定LVS 的工作模式为隧道模式 -m --masquerading 指定LVS 的工作模式为NAT 模式 -w --weight weight 真实服务器的权值 --mcast-interface interface 指定组播的同步接口 -c --connection 显示LVS 目前的连接 如:ipvsadm -L -c --timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout --daemon 显示同步守护进程状态 --stats 显示统计信息 --rate 显示速率信息 --sort 对虚拟服务器和真实服务器排序输出 --numeric -n 输出IP 地址和端口的数字形式超时时间用ipvsadm --set tcp tcpfin udp设置,比如#ipvsadm --set 120 20 100表示tcp空闲等待时间为120 秒客户端关闭链接等待时间为20秒udp空闲等待为100秒


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:LINUX随笔三十 用户登录缓慢卡顿
下一篇:汉字区位码查询API(汉字区位码怎么看)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~