内容简介:一 . keepalived简介keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
一 . keepalived简介
keepalived是什么?
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
keepalived工作原理
keepalived是以 VRRP协议为实现基础 的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
这个组里面有一个master(主)和多个backup(备份),master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播(224.0.0.18), 当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级(priority)来选举一个backup当master 。这样的话就可以保证路由器的高可用了。
keepalived主要有三个模块,分别是core(核心)、check(检测)和vrrp(虚拟路由冗余协议)。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件(keepalived.conf)的加载和解析。check负责健康检查,包括常见的各种检查方式(TCP、脚本检测进程状态等)。vrrp模块是来实现VRRP协议的。
keepalived的常见组合 :
keepalived+LVS
keepalived+nginx
keepalived+mysql-proxy
keepalived+mycat
keepalived+LVS
Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障
。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
二 . keepalived+LVS\DR的搭建
实验拓扑图
实验准备
| 客户端/服务器 | |
| Client | 192.168.11.1 |
| Director master (node11) | 192.168.11.11/24 |
| Director Backup (node12) | 192.168.11.12/24 |
| Real Server (node13) | 192.168.11.13/24 |
| Real Server (node14) | 192.168.11.14/24 |
四台服务器均关闭防火墙和selinux
systemctl stop firewalld #关闭防火墙
systemctl status firrewalld #查看防火墙
setenforce 0 #关闭selinux
getenforce #查看selinux是否关闭
服务部署流程
首先简单部署后端服务器(real server) , 后端web服务器可以是apache , nginx 等服务
在node13和node14上部署apache服务 , 并设置主页
node13(192.168.11.13)上的操作
yum install -y httpd #用yum安装httpd软件
echo ' www.node13.com' > /var/www/html/index.html #设置apache主页 , node13上做
systemctl start httpd #重启服务
curl 192.168.11.13 #内测httpd服务
vim lo.sh #编辑脚本,内容如下
#!/bin/bash
ifconfig lo:1 192.168.11.100 netmask 255.255.255.255
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
chmod +x lo.sh #给脚本执行权限
bash lo.sh #运行脚本 , 出现下图片中的IP则表示正确
scp lo.sh root@192.168.11.14:/root/ #把lo.sh上传到192.168.11.14的root家目录中
node14(192.168.11.14)上的操作
yum install -y httpd #用yum安装httpd软件
echo ' www.node14.com' > /var/www/html/index.html #设置apache主页 , node13上做
systemctl start httpd #重启服务
curl 192.168.11.13 #内测httpd服务
bash lo.sh
部署Master Director Server 服务(192.168.11.11)
yum install -y keepalived ipvsadm #安装keepalived软件和ipvsadm命令
cd /etc/keepalived
cp -av keepalived.conf{,.bak} #备份keepalived主配置文件
vim keepalived.conf #编辑keepalived配置文件 , 如下图
配置文件详解:
配置好keepalived文件定义集群后 , 重启服务 , 查看IP和ipvsadm集群信息
systemctl restart keepalived #重启服务
ip a #此处查看ip信息 , 会多出一个vrrp的虚拟IP(VIP地址)
ipvsadm -Ln #查看ipvsadm集群VIP所对应的后端web服务器IP信息
把配置文件keepalived.conf配置文件传到192.168.11.12备服务器上
[root@node11 keepalived]# scp keepalived.conf root@192.168.11.12:/etc/keepalived/
部署Backup Director Server 服务(192.168.11.12)
yum install -y keepalived ipvsadm
vim /etc/keepalived/keepalived.conf
systemctl restart keepalived #重启keepalived服务
修改好配置文件重启服务后 , 此时ip a 查看ip地址信息 , 发现VIP地址并为出现 , 原因是主服务器未down掉
配置好主备服务后 , 进行测试
测试结果每访问3次192.168.11.14 , 再访问一次192.168.11.13 ,(LVS调度算法权重)成功负载均衡进行轮询
此时假装把主服务器192.168.11.11down掉 , 查看192.168.11.12的IP状态 ,并再次执行测试
关闭node11的keepalived服务
查看192.168.11.12上的IP信息 , 发现成功继承VIP:192.168.11.100,并继续承当起负载均衡器 , 实现高可用
再次测试:
抓包分析:
keepalived通过vrrp协议进行组播的 作用 : 是为了竞选出由哪台keepalived主机接管业务(使用VIP的)。谁的priority优先级高(即票数多),谁就有VIP地址。
当master和backup都在运行keepalived服务时 :在备服务器node12抓取vrrp包 , 发现是192.168.11.11在不间断发送vrrp组播node11(master)发送的组播信息:
node12(backup)接收的组播信息 :
src:192.168.11.11
dest:224.0.0.18
keepalived集群中其他主机接收的组播信息 :
src:192.168.11.11
dest:224.0.0.18
当192.168.11.11down掉后 , 192.168.11.12竞选 ,开始由192.168.11.11不间断发送vrrp包变成192.168.11.12开始不间断发送vrrp组播
node12发送的组播信息 :
src:192.168.11.12
dest:224.0.0.18
keepalived集群中其他主机接收的组播信息:
src:192.168.11.12
dest:224.0.0.18
以上所述就是小编给大家介绍的《HA集群-keepalived+LVS\DR部署》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- docker部署rabbitmq集群
- 部署Ceph集群--jluocc
- 部署高可用Kubernetes集群
- Eureka使用及集群部署
- 使用Docker部署RabbitMQ集群
- GreenPlum 5.10.0 集群部署
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
PHP for the World Wide Web, Second Edition (Visual QuickStart Gu
Larry Ullman / Peachpit Press / 2004-02-02 / USD 29.99
So you know HTML, even JavaScript, but the idea of learning an actual programming language like PHP terrifies you? Well, stop quaking and get going with this easy task-based guide! Aimed at beginning ......一起来看看 《PHP for the World Wide Web, Second Edition (Visual QuickStart Gu》 这本书的介绍吧!