keepalive高可用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalive高可用相关的知识,希望对你有一定的参考价值。

准备两台主备主机,都安装keepalived yum install -y keepalived
master上前期已安装nginx
backup 上使用yum 安装nginx yum install -y nginx
提示错误时没有可用软件包nginx,解决办法: yum install -y epel-release

在主(master)上编辑配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email { #如果有异常,发送邮件br/>[email protected]
}
notification_email_from [email protected] #编辑邮箱信息
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh" #编辑自定义检查脚本
interval 3
}
vrrp_instance VI_1 {
state MASTER
interface ens33 #编辑网卡名称
virtual_router_id 51 #编辑路由ID信息
priority 100
advert_int 1
authentication {
auth_type PASS #访问类型是密码加密
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.188.100 #VIP服务ip地址
}
track_script { #加载上面的自定义检查脚本
chk_nginx
}
}

再编辑自定义检查脚本
vim /usr/local/sbin/check_ng.sh
技术分享图片
给脚本 755权限 ,重启keepalived服务,查看keepalived进程是否开启
技术分享图片
因为脚本上定义了开启keepalived服务,即使关闭了nginx,也会自动重启
技术分享图片

在备上编辑keepalived配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
br/>[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/usr/local/sbin/check_ng.sh"
interval 3
}
vrrp_instance VI_1 {
state BACKUP
interface eno16777736 #指定备的网卡名称,指定监听的网卡
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass aminglinux>com
}
virtual_ipaddress {
192.168.188.100 #服务IP VIP
}
track_script {
chk_nginx
}
}
编辑检查脚本
技术分享图片
跟主一样,给脚本文件赋值755权限,并重启keepalived服务
技术分享图片
重启时keepalived时发现没有启动,检测是因为从配置上的网卡名称没有及时修改。
顺便查看下主从的网卡信息,发现服务ip已经生效
主(master)网卡信息:
技术分享图片
备网卡信息:
技术分享图片
打开浏览器输入 主从地址,服务地址,查看nginx结果
技术分享图片
技术分享图片技术分享图片

技术分享图片

推测从上IP不成功可能是php还没配置。

测试高可用
先确定好两台机器上nginx差异,比如可以通过curl -I 来查看nginx版本
测试1:关闭master上的nginx服务
测试2:在master上增加iptabls规则
iptables -I OUTPUT -p vrrp -j DROP
技术分享图片
访问主 和服务ip,仍有效
技术分享图片
技术分享图片

查看主从ip网卡信息,100的服务IP 也还没释放
iptable -F 取消策略

测试3:关闭master上的keepalived服务
技术分享图片
主上的服务ip已经释放了
技术分享图片

从上的服务ip还在
监测下服务ip,网页不通,curl已经发生了改变,说明master挂掉后,服务ip自动选择备服务器,高可用已经生效
技术分享图片
看起来有必要在从上安装个php....

测试4:启动master上的keepalived服务
起来之后会发现 主上服务ip已起来了,访问也ok



以上是关于keepalive高可用的主要内容,如果未能解决你的问题,请参考以下文章

keepalive高可用

Redis高可用架构—Keepalive+VIP

LVS+keepalive

nginx+keepalive 实现高可用负载均衡方案

Keepalive配置文件说明和实现高可用

keepalive高可用