Keepalived 备机解决proxysql单点故障

主从结构,读写分离

这里只是演示keepalived安装

proxysql 安装参考:ProxySQL 代理Mysql实现读写分离-CSDN博客

mysql主从安装参考:Docker mysql主从同步_docker mysql8主从同步跟随docker自启动无需配置-CSDN博客

分别在131 、110两台机写好启动的配置挂载文件

javascript 复制代码
cd /usr/local/
mkdir keepalived
vim keepalived.conf
javascript 复制代码
-------------- 主节点配置---------------
global_defs {
   router_id PROXY_131        # 131是为了标记日志从那台机子产生
}


vrrp_script chk_proxysql {
    # 直接用 nc 检查本机 6032 端口 (ProxySQL 管理端口)
    script "/bin/bash -c 'nc -z 127.0.0.1 6032'"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state MASTER              # 记得备机改成 BACKUP
    interface ens33           # 记得改成你的网卡名
    virtual_router_id 51
    priority 150              # 记得备机要比主机小 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 1111
    }

    # 2. 关联上面的脚本
    track_script {
        chk_proxysql
    }

    virtual_ipaddress {
        192.168.208.200
    }
}
javascript 复制代码
-------------- 备机配置---------------
global_defs {
   router_id PROXY_110
}


vrrp_script chk_proxysql {
    # 直接用 nc 检查本机 6032 端口 (ProxySQL 管理端口)
    script "/bin/bash -c 'nc -z 127.0.0.1 6032'"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1

    authentication {
        auth_type PASS
        auth_pass 1111
    }

    # 2. 关联上面的脚本
    track_script {
        chk_proxysql
    }

    virtual_ipaddress {
        192.168.208.200
    }
}

分别在131、110上执行

javascript 复制代码
docker run -d \
  --name keepalived \
  --restart=always \
  --net=host \
  --cap-add=NET_ADMIN \
  -v /usr/local/keepalived/keepalived.conf:/etc/keepalived/keepalived.conf \
  osixia/keepalived:latest

验证:

在131 输入 ip addr 会看到 ens33 下会挂载 一个200结尾的vip,而110是没有的,只有当131上的keepaalived 挂掉才飘逸到110这台机;

Keepalived 的机制是"抢占式"的:

(主机) 优先级高(Priority 150),只要它活着,VIP 就必须在他手上。

(备机) 优先级低(Priority 100),它发现 131 活着,就会乖乖当小弟,绝对不会去抢 VIP。

  1. 打开 110 的终端,输入这个命令,盯着看:
javascript 复制代码
watch -n 1 'ip addr show ens33 | grep 200'
  1. 在 131(主机)上"搞破坏"
javascript 复制代码
docker stop keepalived
  1. 回头看 110

你会看到,大概 1-3秒后,110 的屏幕上会突然刷出这一行:

inet 192.168.208.200/32 scope global ens33

相关推荐
小百菜4 天前
Keepalived + Nginx 实现高可用
nginx·keepalived
Brandon汐5 天前
HAProxy+Keepalived+MariaDB+tomcat+Prometheus+Grafana高可用部署
云原生·tomcat·grafana·prometheus·mariadb·keepalived·haproxy
cyber_两只龙宝17 天前
【Keepalived】抢占模式、延迟抢占模式与非抢占模式详解
linux·运维·服务器·keepalived
nzxzn1 个月前
Keepalived 核心知识点
运维·keepalived
feng68_1 个月前
Keepalived基础实现
运维·服务器·keepalived
cyber_两只龙宝2 个月前
Keepalived+LVS--实现IPVS的高可用+高性能的双主双业务架构详细配置流程及解析
linux·运维·集群·lvs·高性能·keepalived·高可用
71ber2 个月前
RHCSE 实战笔记:Keepalived 企业级高可用集群深度解析
linux·服务器·keepalived
SakitamaX2 个月前
KEEPALIVED介绍与实验与介绍
运维·keepalived
之歆2 个月前
Keepalived 完全指南
keepalived