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:http -s rr-a -t k8s02:http -r k8s03:http -m -w 1-a -t k8s02:http -r k8s04:http -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 httpdsystemctl restart httpdecho “192.168.10.133” > /var/www/html/index.html #(实验期间,各个服务器的页面不同)3、配置k8s04为realserver, 并启web服务yum install -y httpdsystemctl restart httpdecho “192.168.10.134” > /var/www/html/index.html #(实验期间,各个服务器的页面不同)

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秒

自己不喜欢的人,可以报之以沉默微笑;

LVS集群-NAT模式

相关文章:

你感兴趣的文章:

标签云: