行方版部署Keepalived

行方版Keepalived

使用平滑切换,检查脚本进程进程是否存在,则对应return返回1或者0,1时,则keepalived为主节点是降级,切换vip地址,不停keepalived服务。

配置文件说明

  • 备1服务器Keepalived配置文件
! Configuration File for keepalived

global_defs {
   router_id nginx
   vrrp_cpu_affinity 1
   vrrp_priority -20
   checker_priority -20
   vrrp_rt_priority 99
   vrrp_garp_master_refresh 15
   vrrp_no_swap 
   checker_no swap
   vrrp_skip_check_adv_addre
}
vrrp_script chk_jincheng {
    script "/etc/keepalived/scripts/chk.sh"
    interval 5
    fall 2
    rise 1
    user appnginx  #直营chk.sh脚本使用appnginx用户执行
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 136
    nopreempt
    advert_int 1
    unicast_src_ip 
    unicast_peer { 192.168.127.8
        192.168.127.9
    }
    authentication {
        auth_type PASS
        auth_pass nginx_2024
    }
    virtual_ipaddress {
        192.168.127.10
    }
    track_script {
        chk_jincheng
    }
    notify_master /etc/keepalived/scripts/to_master.sh #当状态切换主时,执行脚本。
    notify_fault  /etc/keepalived/scripts/to_fault.sh #当状态为错误时,执行脚本。
}
  • 备2服务器Keepalived配置文件
! Configuration File for keepalived

global_defs {
   router_id nginx
   vrrp_cpu_affinity 1
   vrrp_priority -20
   checker_priority -20
   vrrp_rt_priority 99
   vrrp_garp_master_refresh 15
   vrrp_no_swap 
   checker_no swap
   vrrp_skip_check_adv_addre
}
vrrp_script chk_jincheng {
    script "/etc/keepalived/scripts/chk.sh"
    interval 5
    fall 2
    rise 1
    user appnginx  #直营chk.sh脚本使用appnginx用户执行
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 136
    nopreempt
    advert_int 1
    unicast_src_ip 
    unicast_peer { 192.168.127.9
        192.168.127.8
    }
    authentication {
        auth_type PASS
        auth_pass nginx_2024
    }
    virtual_ipaddress {
        192.168.127.10
    }
    track_script {
        chk_jincheng
    }
    notify_master /etc/keepalived/scripts/to_master.sh #当状态切换主时,执行脚本。
    notify_fault  /etc/keepalived/scripts/to_fault.sh #当状态为错误时,执行脚本。
}

检查脚本说明

  • chk.sh检测脚本
[root@web_nginx_1 scripts]# more chk.sh 
#!/bin/bash

#check nginx
pid_num=$(ps -ef|grep 'api_server|grep -v grep| wc -l)
if [ $pid_num -eq 0 ];then
    exit 1;
else
    exit 0;
fi
  • to_master.sh切换主节点,有服务,需要重启,才能监听vip地址。
#!/bin/bash
mv /opt/keepalived/etc/scripts/chk.sh  /opt/keepalived/etc/scripts/chk.sh_bak
cd /data/appapi/Platform
source /data/appapi/.bash_profile
./start.sh stop api
./start.sh start api
#exit
#EOF
mv /opt/keepalived/etc/scripts/chk.sh_bak /opt/keepalived/etc/scripts/chk.sh

本文由 mdnice 多平台发布

当您部署 Keepalived 的时候,您需要在多个服务器上安装它,并将其配置为相互通信,以便它们可以选择主服务器和备份服务器。Docker 使这项工作变得更容易,因为它使您能够创建可移植的容器,并将其部署在多个主机上。 下面是一个简单的步骤指南,介绍如何使用 Docker 部署 Keepalived: 1. 在每个服务器上安装 Docker。可以在官方网站上找到安装说明。 2. 从 Docker Hub 下载 Keepalived 镜像。执行以下命令: docker pull osixia/keepalived 3. 创建一个网络,以便容器可以相互通信。例如,使用以下命令创建一个名为“keepalived_network”的网络: docker network create --driver bridge keepalived_network 4. 启动第一个 Keepalived 容器。以下示例命令启动一个名为“keepalived1”的容器: docker run -d --name keepalived1 --net keepalived_network \ -e KEEPALIVED_INTERFACE=eth0 \ -e KEEPALIVED_VIRTUAL_IPS=192.168.0.10 \ -e KEEPALIVED_UNICAST_PEERS="#PYTHON2BASH:['192.168.0.11', '192.168.0.12']" \ osixia/keepalived 在这个命令中,我们使用了环境变量来设置 Keepalived 的配置。请注意,我们指定了一个虚拟 IP 地址(192.168.0.10),并指定了其他两个服务器的 IP 地址作为 Unicast Peers(192.168.0.11 和 192.168.0.12)。 5. 启动其他 Keepalived 容器。请参考第 4 步的示例命令,修改其中的容器名称、虚拟 IP 和 Unicast Peers。 6. 在每个容器中测试 Keepalived。执行以下命令: docker exec keepalived1 ip addr show eth0 这将显示容器中 eth0 接口的 IP 地址。应该显示虚拟 IP 地址(192.168.0.10)。 然后尝试从其他服务器 ping 虚拟 IP 地址,确保它们都可以访问虚拟 IP 地址。 以上是一个简单的 Docker 部署 Keepalived 的步骤,但是这只是 Keepalived 的基本配置。具体配置取决于您的环境和需求。如果您需要更多帮助,请告诉我您具体的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡的运维之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值