RHEL6 搭建LVS/NAT 负载均衡集群 案例

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

实验拓扑图

NAT.jpg



操作流程

Director Server :     192.168.4.50 pc50

安装并启用ipvsadm

创建虚拟服务器

向虚拟服务器上加入节点


Real Server :     192.168.4.51 pc51     192.168.4.52 pc52

配置WEB 服务器


Clinet :     192.168.2.253 pc253

连接虚拟服务器测试


具体步骤

环境准备

    配置yum源

    # service iptables stop            //关闭防火墙

    # chkconfig iptables off            //关闭开机自启

    # setenforce 0                            //设置SELinux 为宽松模式

    

网站服务器     pc51 /  pc52 

    # yum -y install httpd

    [root@pc51 ~]# echo '192.168.4.51' > /var/www/html/test.html

    [root@pc52 ~]# echo "192.168.4.52" > /var/www/html/test.html

    # service httpd start

    # chkconfig httpd on

    # yum -y install elinks

    [root@pc51 ~]# elinks --dump http://localhost/test.html

       192.168.4.51

    [root@pc52 ~]# elinks --dump http://localhost/test.html

       192.168.4.52

    

配置分发器 pc50

        # mount /dev/cdrom /mnt/

        //安装 ipvsadm   rpm 包在光盘挂载文件下的LoadBalancer目录下

        #cd /mnt/LoadBalancer/

        #yum -y install ipvsadm-1.26-4.el6.x86_64.rpm 

        //开启内核的路由转发功能

        # sed -i '7s/0/1/' /etc/sysctl.conf

        # sed -n '7p' /etc/sysctl.conf 

        net.ipv4.ip_forward = 1


网站服务器 pc51 / pc52 

        指定网关地址 192.168.4.50

        # route -n//查看路由

        # route add default gw 192.168.4.50//临时配置网关 网卡重启后生效

        //永久配置网关

        # vim /etc/sysconfig/network-scripts/ifcfg-eth0

        # sed -n '7p' /etc/sysconfig/network-scripts/ifcfg-eth0

        GATEWAY=192.168.4.50

        # ifdown eth0 ; ifup eth0      //重新加载网卡


客户端 192.168.2.253 配置

        指定网关地址 192.168.2.50 :

        # vim /etc/sysconfig/network-scripts/ifcfg-eth1

        # sed -n '7p' /etc/sysconfig/network-scripts/ifcfg-eth1

        GATEWAY=192.168.2.50

        # ifdown eth1 ; ifup eth1

        # ping -c 2 192.168.4.51

        PING 192.168.4.51 (192.168.4.51) 56(84) bytes of data.

        64 bytes from 192.168.4.51: icmp_seq=1 ttl=63 time=0.322 ms

        64 bytes from 192.168.4.51: icmp_seq=2 ttl=63 time=0.503 ms

        

        --- 192.168.4.51 ping statistics ---

        2 packets transmitted, 2 received, 0% packet loss, time 1000ms

        rtt min/avg/max/mdev = 0.322/0.412/0.503/0.092 ms

        # yum -y install elinks

        


配置分发器 pc50 :

        # yum -y install ipvsadm-1.26-4.el6.x86_64.rpm

        # rpm -q ipvsadm

        ipvsadm-1.26-4.el6.x86_64

        

添加虚拟服务

        # ipvsadm -L  //查看 IPVS

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        # ipvsadm -A -t 192.168.2.50:80 -s rr//添加虚拟服务 调度算法为Round Robin

        # ipvsadm -L

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        TCP  192.168.2.50:http rr

        # ipvsadm -Ln   //- n  数字显示

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port Scheduler Flags

          -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

        TCP  192.168.2.50:80 rr

                //向虚拟服务器中加入节点

        # ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m

        # ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m

        # 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.2.50:80 rr

          -> 192.168.4.51:80              Masq    1      0          0         

          -> 192.168.4.52:80              Masq    1      0          0   

        # /etc/init.d/ipvsadm save//使配置永久生效

        ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [确定]

        # cat /etc/sysconfig/ipvsadm

        -A -t 192.168.2.50:80 -s rr

        -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m -w 1

        -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m -w 1

        

客户端测试

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.51

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.52

        //客户端 轮询到不同的后端真实服务器        

        

        [root@pc50 ~]# ipvsadm -Ln --stats

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

          -> RemoteAddress:Port

        TCP  192.168.2.50:80                 2       10       10      846     1098

          -> 192.168.4.51:80                     1        5        5        423      549

          -> 192.168.4.52:80                     1        5        5        423      549


        模拟pc51 web服务故障:

        [root@pc51 ~]# service httpd stop

        [root@pc50 ~]# ipvsadm -Z

        

         //客户端测试

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.52

        # elinks --dump http://192.168.2.50/test.html

           192.168.4.52

           

        [root@pc50 ~]# ipvsadm -Ln --stats

        IP Virtual Server version 1.2.1 (size=4096)

        Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

          -> RemoteAddress:Port

        TCP  192.168.2.50:80                 3       11       11      906     1138

          -> 192.168.4.51:80                     1        1        1         60       40

          -> 192.168.4.52:80                     2       10       10      846     1098

        

        会发现 LVS/NAT 单点故障时 并不能健康性检查

        可以 编写一个脚本 监测两台Real Server 的服务 是否正常 如果监测到故障  将对应的服务在调度服务器 停掉

        使用周期性计划任务 定时运行监测脚本 到达 健康检查的目的

 










本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2060385,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
8月前
|
运维 负载均衡 应用服务中间件
LVS详解(五)——LVS NAT模式实战
LVS详解(五)——LVS NAT模式实战
147 3
|
8月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
5月前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
157 2
|
5月前
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
305 6
|
5月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
87 5
|
5月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
205 5
|
6月前
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
171 2
|
8月前
|
负载均衡 Kubernetes 网络协议
如何在集群的负载均衡过程保留请求源IP
本文探讨了在Kubernetes (k8s)集群中如何确保服务获取到请求的源IP。通常,源IP可能会因网络地址转换(NAT)和代理服务器而丢失。为保留源IP,文章建议在代理服务器层添加HTTP头`X-REAL-IP`字段。在K8s中,通过设置`externalTrafficPolicy: Local`可保留源IP,但这会牺牲负载均衡。使用Ingress时,可通过配置Ingress Controller的`use-forwarded-headers`并调整ConfigMap来同时保留源IP和实现负载均衡。文章适用于对网络和K8s感兴趣的读者。
182 3
|
7月前
|
缓存 负载均衡 NoSQL
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
93 1
|
7月前
|
负载均衡 运维 监控
负载均衡与容错性:集群模式在分布式系统中的应用
本文由小米分享,解释了分布式系统中的集群模式。集群模式是通过组合多个服务器节点,共同提供服务,实现高可用性、负载均衡和扩展性。文章介绍了主控节点的角色及其高可用性策略,如主备模式和选举机制,并以Zookeeper为例详细阐述了其工作机制。集群模式的优势在于高可用性、负载均衡、扩展性和数据一致性,但也面临节点通信、数据一致性、故障检测和管理等挑战。最后,作者鼓励读者讨论和交流相关技术问题。
292 5