目录
1.2 双机热备方案-keepalived的含义以及工作原理
2.3 修改主机(192.168.81.130)keepalived配置文件
2.4 修改备机(192.168.81.131)keepalived.conf配置文件
2.7 在主节点和从节点上查看虚拟IP是否绑定到ens33网卡上
3.1 修改两个服务器默认访问的nginx的html页面作为区别
3.3.1杀死主节点的keepalived的三个进程、停止nginx服务
1、基本原理介绍
1.1 高可用概念以及它能解决的问题
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指通过设计减少系统不能提供服务的时间。如果一个系统能够一直提供服务,那么这个可用性则是百分之百,但是天有不测风云。所以我们只能尽可能的去减少服务的故障。
在生产环境上很多时候是以Nginx
做反向代理对外提供服务,但是一天Nginx难免遇见故障,如:服务器宕机。当Nginx
宕机那么所有对外提供的接口都将导致无法访问。
虽然我们无法保证服务器百分之百可用,但是也得想办法避免这种悲剧,今天我们使用keepalived
来实现Nginx
的高可用。
1.2 双机热备方案-keepalived的含义以及工作原理
这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实就是指一台服务器在提供服务,另一台为某服务的备用状态,当一台服务器不可用另外一台就会顶替上去。
keepalived的含义
Keepalived
软件起初是专为LVS
负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)
功能。因此,Keepalived
除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)
的高可用解决方案软件。
keepalived的工作原理
Keepalived
高可用服务之间的故障切换转移,是通过VRRP
来实现的。
在 Keepalived
服务正常工作时,主 Master
节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup
节点自己还活着,当主 Master
节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master
节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。
2、部署nginx-高可用主备模式
2.1 环境准备
主机名 | IP地址 |
centos01(已安装好nginx) | 192.168.81.130/24 |
centos02(已安装好nginx) | 192.168.81.131/24 |
2.2 安装keepalived
yum 方式直接安装,该方式会直接安装依赖
yum install -y keepalived
安装好后,将keepalived程序开启,并且加入到开机启动项中。
systemctl start keepalived
systemctl enable keepalived
2.3 修改主机(192.168.81.130)keepalived配置文件
yum 方式安装的会在配置文件在/etc/keepalived下
vi /etc/keepalived/keepalived.conf
keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email { #设置报警邮件地址,需要开启本机postfix或者sendmail服务;
xxx@alibaba-inc@qq.com
}
notification_email_from root@localhost.com #用于设置邮件的发送地址,即报警邮件发送者;
smtp_server 127.0.0.1 #用于设置邮件的SMTP Server地址;
smtp_connect_timeout 30 #设置连接SMTP Server的超时时间;
router_id LVS_DEVEL #LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机
}
vrrp_script chk_ng