自动化运维(keepalived)

一、keepalived

keepalived是什么: keepalived是集群管理中保证集群高可用的一个服务软件,用来**防止单点故障。

keepalived是以VRRP协议为实现基础的,   VRRP全称Virtual Router Redundancy Protocol, 即虚拟路由冗余协议

虚拟路由冗余协议,可以认为是实现高可用的协议,即将N台提供相同功能的路由器组成一个路由器组。

keepalived工作原理:

== 这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。==

在这里插入图片描述
keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

Keepalived的BACKUP主机在收到不MASTER主机报文后就会切换成为master,如果是它们之间的通信线路出现问题,无法接收到彼此的组播通知,但是两个节点实际都处于正常工作状态,这时两个节点均为master强行绑定虚拟IP,导致不可预料的后果,这就是脑裂
解决方式 :
1、添加更多的检测手段,比如冗余的心跳线(两块网卡做健康监测),ping对方等等。尽量减少"裂脑"发生机会。(指标不治本,只是提高了检测到的概率);
2、做好对裂脑的监控报警(如邮件及手机短信等或值班).在问题发生时人为第一时间介入仲裁,降低损失。例如,百度的监控报警短倍就有上行和下行的区别。报警消息发送到管理员手机上,管理员可以通过手机回复对应数字或简单的字符串操作返回给服务器.让服务器根据指令自动处理相应故障,这样解决故障的时间更短.
3、爆头,将master停掉。然后检查机器之间的防火墙。网络之间的通信;

二、keepalived + nginx实战

在这里插入图片描述

== nginx实现代理,安装在代理服务器上,keepalived 实现高可用,也安装在代理服务器上。==

2.1配置代理服务器

1.安装nginx(略)
2.修改nginx配置文件,设置代理服务
vim /etc/nginx/conf.d/upstream.conf
在这里插入图片描述
vim /etc/nginx/conf.d/proxy.conf
在这里插入图片描述
设置完成,备份的第二台代理服务器也同样的设置;
**至此,nginx实现负载均衡功能已经设置完成。**可以访问两台代理服务器,都会自动跳转到两台后台真实服务器上。
3.安装keepalived
yum -y install keepalived
4.设置keepalived
先备份掉原来的配置文件,再重新编辑新的配置文件:
在这里插入图片描述
vim keepalived:
在这里插入图片描述
这是主代理服务器。备份代理服务器也差不多,安装完keepalived 后,修改配置文件:
在这里插入图片描述
修改完代理服务器后启动keepalived.
启动后会在主代理服务器上看到新增了虚拟IP:
在这里插入图片描述
至此,keepalived 服务就部署完成了,它是用来监控防止主服务器宕机。而nginx,lvs等是做代理服务器的,用来实现负载均衡服务。

2.2配置后台真实服务器

1.安代理服务器,这里为nginx
2.设置不同页面进行测试
测试:
浏览器访问虚拟IP,会跳转到后台服务器上, 关闭主服务器的keepalived ,:
在主服务器上虚拟IP消失了,漂移到了备份服务器上:
在这里插入图片描述
浏览器依然能访问到:
在这里插入图片描述

2.3脚本补充

keepalived 可以防止主服务器电脑宕机,从而启用备份服务器。但是一但主服务器上的 ,负责负载均衡的服务例如 nginx。 lvs等出问题了,那么,会导致一个问题,就是虚拟IP还在主服务器上,但是提供不了服务。
那么如何解决这个问题呢? 这时候,我们可以,如果nginx或者lvs,等负责负载均衡的服务关了,我们就把它的keepalived服务也给关了,一但主服务器上的keepalived关闭了,那么虚拟IP就会漂移到备份服务器上,虚拟IP这样虚拟IP就不会被主服务器占着了,备份服务区就会继续提供nginx或lvs服务。
具体做法就是在keepalived的配置文件里写脚本。在主服务上写即可。
给脚本一个执行权限:
chmod a+x /etc/keepalived/check_nginx_status.sh
在这里插入图片描述
脚本内容:在这里插入图片描述
这样,当主服务器上nginx关闭了,keepalived服务也会关闭。虚拟IP就会漂移到备份服务器上。

三、keepalived + lvs(DR模式)实战

在这里插入图片描述

lvs实现代理,安装在代理服务上,keepalived 实现高可用,也安装在代理服务器上。

3.1配置代理服务器

1.安装keepalived ipvsadm
yum -y install keepalived ipvsadm
2.修改keepalived 配置文件
进入到keepalived配置文件里,备份原来的配置文件,编辑新的配置文件:
vim /keepalived.conf
在这里插入图片描述
++++
在这里插入图片描述
第二台代理服务器也是同样的操作,只是配置文件略有不同:
在这里插入图片描述
++++
在这里插入图片描述
配置完成后开启:
systemctl start keepalived

3.2配置后台服务器

1.安装nignx(略)
2.配置虚拟IP 到 服务器lo回环接口
ip addr add dev lo 虚拟IP
3.忽略arp广播
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
4.匹配精确ip 地址回包
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
测试部分(略)

四、keepalived + lvs(NET模式)实战

在这里插入图片描述

4.1配置代理服务器

1.安装keepalived ipvsadm
yum -y install keepalived ipvsadm
2.修改keepalived 配置文件
进入到keepalived配置文件里,备份原来的配置文件,编辑新的配置文件:
vim /keepalived.conf

4.1.1第一台主服务器 master

在这里插入图片描述
注: 这里的虚拟IP是 VIP
++++
在这里插入图片描述
++++
在这里插入图片描述

4.1.2第二台服务器 backup

在这里插入图片描述
++++
在这里插入图片描述
++++
在这里插入图片描述

3.开启网关转发功能:
vim /etc/sysctl.conf
加入:net.ipv4.ip_forward = 1
在这里插入图片描述
两台服务器都设置,开启

4.2配置后台服务器

1.安装nginx(略)
2.配置网关
route add default gw 虚拟的代理服务器IP(DIP) dev ens33 两台真实服务器都做
在这里插入图片描述

测试(略)

五、keepalived + mysql 实战

在这里插入图片描述

mariadb 代表被访问的数据库,安装在后台真实服务器上,keepalived 实现高可用,安装在后台真实服务器上。

5.1配置后台真实服务器

5.1.1设置数据库

1.安装数据库
yum - y install mariadb-server mariadb
启动数据库库:
systemctl start mariadb
2.创建库,创建用户并授权
创建一个库,用于测试访问:
create database 库名
在这里插入图片描述

创建一个用户,设置密码,进行远程登录测试
grant all on * . * to root@’%’ identified by ‘密码’;
在这里插入图片描述
完了记得刷新一下权限:
flush privileges;
在这里插入图片描述
以上所有步骤都在real-server1 上面进行,在第二台真实服务器real-server2上,操作都相同,除了创建库时名字不同。

5.1.2设置keepalived

一 |、master 设置keepalived
1.安装keepalived
yum -y install keepalived
2.配置keepalived
进入到配置文件夹下,先备份来的配置文件:
在这里插入图片描述
再创建一个新的配置文件,用于我们编辑:
在这里插入图片描述
在里面编辑好keepalived 协议:
在这里插入图片描述

这里,协议里的脚本我们需要去设置好的路径去创建,协议里才能执行。
vim /etc/keepalived/keepalived_chech_mysql.sh
脚本内容:
在这里插入图片描述
++++
再给脚本一个执行权限:
chmod +x /etc/keepalived/keepalived_chech_mysql.sh
执行完这一系列操作后,然后重启keepalived,:
systemctl restart keepalived

二、接下来是backup配置keepalived:
步骤和master差不多,
1.安装keepalived (略)
2.配置keepalived
先是备份配置文件,让后编辑新的配置文件,只不过文件里有的地方不一样:
vim /etc/keepalived/keepalived.conf
在这里插入图片描述
完了同样是创建脚本,给脚本权限,与master一样(略)
最后重启 keepalived即可;

5.2配置一台服务其进行访问数据库测试

1.安装mariadb
yum -y install mariadb
2.测试
我们先看看两台服务器的IP :
master:
在这里插入图片描述
backup :
在这里插入图片描述
输入访问数据库的用户root ,主机名为虚拟用户 ,加密码:
在这里插入图片描述
+++++
接下来我们停掉master的数数据库:
在这里插入图片描述
再次检测master 的IP:
在这里插入图片描述

+++++
我们查看一下backup服务器:
在这里插入图片描述
+++++
再次远程访问数据库:
在这里插入图片描述
mariadb + keepalived 实战项目结束。

六、keepalived + haproxy (七层)

ha-proxy概述
软件:haproxy—主要是做负载均衡的7层,也可以做4层负载均衡
ha-proxy是一款高性能的负载均衡软件。因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。
ha-proxy的特点
ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。下面介绍一下ha-proxy相对LVS,Nginx等负载均衡软件的优点。

•支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
•支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
•性能非常优秀,基于单进程处理模式(和Nginx类似)让其性能卓越。
•拥有一个功能出色的监控页面,实时了解系统的当前状况。
•功能强大的ACL支持,给用户极大的方便。

haproxy算法:
1.roundrobin
基于权重进行轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整.
2.static-rr
基于权重进行轮询,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制
3.leastconn
新的连接请求被派发至具有最少连接数目的后端服务器.
在这里插入图片描述

6.1配置代理服务器

1.安装haproxy 配置
yum -y install haproxy
备份原来的配置文件,编辑一个新的
vim /etc/haproxy.cfg
在这里插入图片描述
++++
在这里插入图片描述
配置完成后启动
systemctl start haproxy
第二台backup也是一样的配置
2.安装keepalived 配置
yum -y install keepalived
在这里插入图片描述
backup服务器;
在这里插入图片描述
配置完成后启动keepalived
systemctl start keepalived

6.2配置后台服务器

1.安代理服务器,这里为nginx(略)
2.设置不同页面进行测试
测试 + 脚本 (略) 与 keepalived + nginx 实战 里一样。

鸽子
伪善的人来了又走,只顾吃穿。
明天冰雪封山的时候,我也光着双脚。
请你在春天到来的时候,轻轻歌唱,唱一首关于冬天的歌谣,漫漫长长。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值