linux高级技巧:服务器集群之keepalived

Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。使用多台节点安装keepalived。其他的节点用来提供真实的服务,同样的,他们对外表现一个虚拟的IP。主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

1.keepalived的原理图如下所示:

最左边是客户机,它访问我们的虚拟IP。然后我们有master(主控制节点)和backup(备用控制节点)。最右边的就是我们提供服务的真机了。

2.搭建keepalived服务

我们使用四个节点来做这个实验,两个充当控制节点,另外两个提供服务。然后用真机的浏览器访问虚拟IP。

注意事项:

1.所有节点要做好解析。

2.时间同步

3.yum源设置好(除了基本的源,高可用等也要添加)

如图是我们的操作控制台:

keepalived的安装包为:

keepalived-1.2.13.tar.gz

两个控制节点分别解压和编译、安装keepalived:

在编译keepalived之前我们需要安装一些相关的包:

编译keepalived源码包:

这个是我们的 编译结果:

然后我们进行安装:

上述的步骤在两个控制节点上都要进行,最后在配置文件中我们再设定主副节点。

建立软链接,把keepalived的配置文件和服务启动文件链接到指定位置:

设置配置文件:

我们设置了邮件的发送地址和ip,MASTER制定为主控制节点,虚拟id两个节点必须相同。delay_loop 指定6秒检测服务状态。

设置虚拟ip,这是我们客户机访问的IP。

这个是剩余的配置文件内容,我们设置连接方式为直连方式DR,负载策略为轮叫方式rr,协议威TCP。然后我们设置了两个提供服务节点的IP和端口。分别为192.168.2.108和192.168.2.109的80端口。也就是网页访问服务。

然后我们设置备机的配置文件,模式设置为BACKUP,权重修改为50。这样才可以优先让主控制节点接管。

然后我们打开keepalived服务,并查看日志,发现已经识别了192.168.2.110虚拟IP:

在两个提供真机的服务节点上安装arptable_jf软件:

设置arptables的策略:

然后我们要在两个控制节点上安装ipvsadm软件来监控服务的状态:

如果无法安装的话,查看yum源,设置成如下所示:

在两个提供服务的真机上安装httpd,设置完默认发布内容后启动服务:

然后我们在主控制节点上查看当前的监控信息:

在真机的浏览器上查看192.168.2.110的信息。因为是轮叫策略,所以会轮换显示192.168.2.108和192.168.2.109的默认发布内容:

3.小结:

这样我们就搭建了keepalived下的高可用集群。这个的复杂程度要低于heartbeat,在生产环境中也是非常常见的。

来自: linux_player_c

链接:http://blog.chinaunix.net/uid-29622064-id-4406581.html

《Linux云计算及运维架构师高薪实战班》2018年03月26日即将开课中,120天冲击Linux运维年薪30万,改变速约~~~~

*声明:推送内容及图片来源于网络,部分内容会有所改动,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

- END -


原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2018-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏守望轩

Visual Studio 2008 每日提示(十二)

#111、定义最近使用的列表中显示项的数目 原文链接:How to customize the number of items shown in the re...

3704
来自专栏你不就像风一样

[原创]颠覆传统网站开发模式的web服务器

以Java web举例,现在的网站系统开发模式,对于web端和服务端的数据交互以及页面渲染,无外乎两种:

1392
来自专栏Android干货

Android项目实战(二十四):项目包成jar文件,并且将工程中引用的jar一起打入新的jar文件中

874
来自专栏大数据挖掘DT机器学习

亲测:MySQL安装与python下的MySQLdb使用

为什么选择用MySQL,因为MySQL小巧玲珑,且性能强大。不论容量的话,相比其他两个(sql server 、oracle)动则几个G,几十个G的大软件安装在...

2507
来自专栏Flutter入门到实战

Flutter从配置安装到填坑指南详解

在 Google I/O ’17 上,Google 向我们介绍了 Flutter —— 一款新的用于创建移动应用的开源库。

2.5K5
来自专栏CRPER折腾记

VS Code 折腾记 - (7) 内置Debug功能深入【调教angular-cli 最新版】

很多小伙伴说用了打包工具(Webpack)之后,断点调试相当痛苦; 常规的方式无非是debugger,console.log()大法; 但是,vscode这货天...

1082
来自专栏Flutter入门到实战

老司机带你快速上手调试Flutter项目

在讲解调试工具之前,先来看看有关的设置选项,点击菜单栏File-->Settings-->Languages & Frameworks --> Flutter,...

5693
来自专栏拂晓风起

Service Worker和HTTP缓存

1345
来自专栏逸鹏说道

Javascript缓存投毒学习与实战

0x00 起因 不久前@三好学生师傅买了一个wooyun wifi,然后聊到了缓存投毒: ? 然后看到wooyun wifi的这个说明: 默认情况下该功能附带缓...

4525
来自专栏mukekeheart的iOS之旅

《从零开始做一个MEAN全栈项目》(3)

欢迎关注本人的微信公众号“前端小填填”,专注前端技术的基础和项目开发的学习。   上一篇文章给大家讲了一下本项目的开发计划,这一章将会开始着手搭建一个MEAN项...

2874

扫码关注云+社区

领取腾讯云代金券