Keepalived装置部署
- 下载地址:
点我下载 - 通过ftp工具上传到linux中,/home/software
- 解压
tar -zxvf keepalived-2.0.18.tar.gz
- 解压后进入到解压进去的目录,看到会有 configure ,那么就能够做配置了(配置装置和nginx截然不同)
配置 Keepalived - 主
通过命令 vim keepalived.conf 关上配置文件
global_defs {# 路由id:以后装置keepalived的节点主机标识符,保障全局惟一router_id keep_171}vrrp_instance VI_1 {# 示意状态是MASTER主机还是备用机BACKUPstate MASTER# 该实例绑定的网卡interface ens33# 保障主备节点统一即可virtual_router_id 51# 权重,master权重个别高于backup,如果有多个,那就是选举,谁的权重高,谁就入选priority 100# 主备之间同步查看工夫距离,单位秒advert_int 2# 认证权限明码,避免非法节点进入authentication {auth_type PASSauth_pass 1111}# 虚构进去的ip,能够有多个(vip)virtual_ipaddress {192.168.1.161}}
附:查看网卡名称
- 启动 Keepalived
在sbin目录中进行启动(同nginx),如下图:
配置 Keepalived - 备
通过命令 vim keepalived.conf 关上配置文件
global_defs {router_id keep_172}vrrp_instance VI_1 {# 备用机设置为BACKUPstate BACKUPinterface ens33virtual_router_id 51# 权重低于MASTERpriority 80advert_int 2authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {# 留神:主备两台的vip都是一样的,绑定到同一个vip192.168.1.161}}
启动 Keepalived
# 启动keepalivedsystemctl start keepalived# 进行keepalivedsystemctl stop keepalived# 重启keepalivedsystemctl restart keepalived
查看过程
ps -ef|grep keepalived
Keepalived配置Nginx主动重启
减少Nginx重启检测脚本
vim /etc/keepalived/check_nginx_alive_or_not.sh
#!/bin/bashA=`ps -C nginx --no-header |wc -l`# 判断nginx是否宕机,如果宕机了,尝试重启if [ $A -eq 0 ];then/usr/local/nginx/sbin/nginx# 期待一小会再次查看nginx,如果没有启动胜利,则进行keepalived,使其启动备用机sleep 3if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenkillall keepalivedfifi
减少运行权限
chmod +x /etc/keepalived/check_nginx_alive_or_not.sh
配置keepalived监听nginx脚本
vrrp_script check_nginx_alive {script "/etc/keepalived/check_nginx_alive_or_not.sh"interval 2 # 每隔两秒运行上一行脚本weight 10 # 如果脚本运行失败,则降级权重+10}
在 vrrp_instance 中新增监控的脚本
track_script {check_nginx_alive # 追踪 nginx 脚本}
重启Keepalived使得配置文件失效
systemctl restart keepalived
配置Keepalived双主热备
规定:以一个虚构ip分组归为同一个路由
主节点配置:
global_defs {router_id keep_171}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.161}}vrrp_instance VI_2 {state BACKUPinterface ens33virtual_router_id 52priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.162}}
备用节点配置
global_defs {router_id keep_172}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.161}