VIP(Virtual IP Address),虚拟IP地址,主要是用来进行不同主机之间的切换,主要用在服务器的主从切换技术。主从服务器都配置同一个VIP地址,保障系统不间断切换。
Keepalived是高可用解决方案,借助VRRP协议实现高可用服务之间的故障切换转移。在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。
本示例中将使用keepalived保障nginx主从代理服务器高可用。
一、环境说明:
操作系统:centos7
主机(master):192.168.2.145
备机(backup):192.168.2.146
VIP:192.168.2.166
两台机器均已安装nginx服务,浏览效果如下:
二、配置VIP
2.1、主机配置VIP
2.1.1 复制当前端口的网址配置文件,名称后增加“:1”;然后编辑该文件,修改name、device和ipaddr三个数据项,如下图所示。
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:1
vi ifcfg-ens33:1
2.1.2 查看效果命令
ip addr
2.1.3 浏览器访问验证VIP效果,如下图:
2.2、备机配置VIP
参见主机,略
三、安装Keepalived
3.1、主机安装配置
3.1.1 安装及编辑配置文件
yum install -y keepalived
vi keepalived.conf
3.1.2 创建并编辑nginx检测文件
vi check_nginx.sh
3.1.3 启动keepalived服务
systemctl start keepalived
3.2备机安装配置
3.2.1 安装及配置过程参见主机
3.2.2 主备配置差异说明
以下属性必须根据实际情况编写,尤其state必须有master和backup之分。
state #指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备服务器
interface #指定检测网络的网卡接口
priority #节点优先级,数字越大表示节点的优先级越高,在同一个VRRP实例下,MASTER的优先级必须比BACKUP高
以下属性必须一致
vrrp_instance VI_1 #VRRP实例开始的标识 VI_1为实例名称
virtual_router_id #虚拟路由标识,数字形式,同一个VRRP实例使用唯一的标识
auth_type PASS #预共享密钥认证,同一个虚拟路由器的keepalived节点必须一样
auth_pass #设置密钥
virtual_ipaddress #设置虚拟IP地址
nopreempt # 设置为非抢占模式,同一实例下主备设置必须一样
四、效果验证
使用vip访问,如下图:
模拟主机宕机,录入命令:systemctl stop nginx
再次刷新vip访问的网页,返回内容切换为备机了,如下: