【IT老齐075】高可用架构避免单点经典方案Keepalived+VIP

【IT老齐075】高可用架构避免单点经典方案Keepalived+VIP

规避单点是高可用架构设置最基本的考量

1711433111956

概念

Keepalived

Keepalived是Linux轻量级别的高可用解决方案
Keepalived主要是通过虚拟路由几余 (VRRP) 来实现高可用功能,Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成
虚拟路由元余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议

VIP

VIP(虚拟IP)是虚拟的IP,与实际网卡绑定的的IP地址不同,VIP在内网中被动态的映射到不同的MAC地址上,也就是映射到不同的机器设备上,Keepalived通过“心跳机制”监测服务器状态,Master主节点宕机则自动将“IP漂移”到Backup备机上实现高可用

配置文件

主机和备机只有状态和优先级不同

1711433353811

故障转移

如果是Keepalived自身产生问题Master无法发送心跳包,Backup自动升级为Master,产生IP漂移继续提供服务

1711434345408

当Master恢复后,Keepalived自动IP漂移回原Master。新Master自动降级回backup

1711434443776

健康检查

1711434560519

Nginx脚本

#!/bin/bash
#检查nginx的pid文件是否存在或者检查端口
NGINXPID="/usr/install/nginx/logs/nginx.pid'
if [ ! -f $NGINXPID ];then
    killall keepalived
fi

配置

vrrp_script check_nginx {
    #nginx服务检查脚本
    script "/etc/keepalived/nginx_check.sh"
    interval 2 #触发间隔
    weight 1 #权重
}
vrrp_instance VI_1 (
    state MASTER
    interface ens33
    virtual_router_id 51
    #优先级 (主高于备)
    priority 100
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    track_script {
        check_nginx
    }
    virtual ipaddress {
        192.168.237.5/24
    }
}

互为主备

1711435802480

非抢占模式

配置文件添加 nopreempt,使得默认的主服务在掉线再恢复后不抢占备机的服务,减少ip漂移

脑裂

1711436201075

  • 禁止 pkill -9 keepalived,使用 pkill keepalived正常结束,正确回收虚拟ip
  • 解决网络问题后 systemctl restart network
  • 提高局域网可用性
posted @   Faetbwac  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示