使用Keepalived+ipvs构建(高可用+负载均衡)环境!

简介:

   之前写过一个heartbeat-ldirectord实现LVS的高可用,这里引入一个轻量级的程序Keepalived基于VRRP协议工作,也能为服务提供高可用功能,这个程序的开发初衷是为了给lvs提供高可用。


下面我们来看看如何使用keepalived+ipvs实现高可用+负载均衡。

在RHEL6.4以后就提供了rpm格式的安装包,这里我们用源码编译安装。

先去官网下载源码包http://keepalived.org/

解压源程序包,预编译配置,编译程序,安装程序。

tar zxvf keepalived-1.2.13.tar.gz

./configure  --prefix=/usr/local/keepalived  --sysconfdir=/etc/

make && make install

编辑服务脚本,修改程序路径。

vim /etc/init.d/keepalived

wKioL1PgO0zD0cJAAADv96mxCJg145.jpg

编辑主配置文件/etc/keepalived/keepalived.conf

! Configuration File for keepalived


global_defs {    //全局配置段

   notification_email {   //收件人邮箱

        root@localhost

   }

   notification_email_from keepadmin@localhost    //发件人

   smtp_server 127.0.0.1     //邮件服务器

   smtp_connect_timeout 30   //等待超时时间

   router_id LVS_DEVEL

}


vrrp_instance VI_1 {   //定义一个VRRP路由实例

    state MASTER    //初始状态(备节点改为BACKUP)

    interface eth0

    virtual_router_id 51  //路由实例ID(唯一)

    priority 100     //优先级 (备节点的值要设置比主的低)

    advert_int 1     //通告频率

    authentication {    //认证配置

        auth_type PASS   //认证类型

        auth_pass 1111   //密码

    }

    virtual_ipaddress {    //虚拟IP

        192.168.18.18

    }

 notify_master "/etc/keepalived/notify.sh master"  //状态转换通知,要自己写好脚本。

 notify_backup "/etc/keepalived/notify.sh backup"

 notify_fault "/etc/keepalived/notify.sh fault"

}


virtual_server 192.168.18.18 80 {   //定义虚拟服务

    delay_loop 6   

    lb_algo wlc    //指定调度算法

    lb_kind DR     //指定工作模型

    nat_mask 255.255.255.0  

    persistence_timeout 0    //持久连接

    protocol TCP


    real_server 192.168.18.203 80 {     //定义RealServer

        weight 1      //设置权重 

        HTTP_GET {    //配置HTTP健康状态检测

            url {

              path /   //检测的路径

              status_code 200   //响应的状态信息

            }

            connect_timeout 3   //超时时间

            nb_get_retry 3      //重试次数

            delay_before_retry 3  //每一次重试之前等待的时间

        }

    }

    real_server 192.168.18.204 80 {

        weight 2

        HTTP_GET {

            url {

              path /

              status_code 200

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

把配置文件同步到备节点,修改我上面提到的两个地方即可,两个节点启动Keepalived服务。

RealServer配置(略)

scp /etc/keepalived/keepalived.conf admin2:/etc/keepalived/

/etc/init.d/keepalived start

查看主节点生成的配置

wKioL1PgQsXQSilFAARhbTuMsPI761.jpg

访问vip 192.168.18.18

wKioL1PgQ0vSUdFEAADPguPp12k580.jpg


刷新一下,请求自动转发到第二台realserver。

wKioL1PgQ9HjnDxjAADU-ggc238496.jpg



这时我们模拟坏了一台RealServer,将Realserver2-192.168.18.203网络服务给stop,再看看状态。

wKioL1PgRd-hoPxxAAInQXlGlLI194.jpg

再把Realserver2给恢复。

wKioL1PgR36D_f42AAH3A0Pw9QM939.jpg

这时我们模拟主Director故障了,把主节点网络服务stop。

我们来到备节点

wKioL1PgSKPRDU53AATldlDQ0sY874.jpg

主节点下线了,备节点优先级为最高,继承资源,如果这是当主节点恢复后,资源还是会回到主节点的,因为主节点的优先级更高。

好了,这就实现了用keepalived给lvs提供高可用。


有问题欢迎与我交流QQ1183710107



本文转自qw87112 51CTO博客,原文链接:http://blog.51cto.com/tchuairen/1535840

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
494 11
|
存储 负载均衡 NoSQL
搭建高可用及负载均衡的Redis
通过本文介绍的高可用及负载均衡Redis架构,可以有效提升Redis服务的可靠性和性能。主从复制、哨兵模式、Redis集群以及负载均衡技术的结合,使得Redis系统在应对高并发和数据一致性方面表现出色。这些配置和技术不仅适用于小型应用,也能够支持大规模企业级应用的需求。希望本文能够为您的Redis部署提供实用指导和参考。
977 9
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
2147 4
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
536 8
LVS+Keepalived 负载均衡
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
574 4
|
存储 负载均衡 监控
如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
在数字化时代,构建高可靠性服务架构至关重要。本文探讨了如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
548 1
|
负载均衡 应用服务中间件 nginx
搭建域名访问环境二(负载均衡到网关)
这篇文章讲述了如何配置Nginx实现域名访问环境,通过负载均衡将请求从Nginx反向代理到服务网关,并提供了详细的配置步骤和测试验证方法。
搭建域名访问环境二(负载均衡到网关)
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
373 6
|
负载均衡 安全 Cloud Native
云上负载均衡:构建高可用、高性能的网络应用架构
与云原生技术深度融合:随着云原生技术的普及和发展未来的云上负载均衡将更加紧密地与云原生技术相结合。例如与Kubernetes等容器编排平台集成实现自动化的服务发现和路由管理;与Serverless架构结合提供无缝的流量接入和请求处理能力。 安全性能提升:面对日益严峻的网络安全威胁云上负载均衡将更加注重安全性能的提升。通过引入加密传输、访问控制、DDoS防护等安全措施确保网络流量的安全性和隐私性;同时还将建立完善的安全监控和应急响应机制以应对各种安全事件和突发事件。 支持多协议和多场景:未来的云上负载均衡将支持更多种类的网络协议和应用场景以满足不同用户和业务的需求。例如支持HTTP/2、
654 0
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
410 21

相关实验场景

更多