当前位置: 首页 > news >正文

keepalived+脚本抢占模式和非抢占模式

1、抢占模式(默认)
  • MASTER上的nginx挂了,BACKUP会成为新的MASTER,MASTER上的nginx启动后,BACKUP会恢复备的角色。
  • 正式环境不要有注释,也不要有多余空格,脚本要有执行权限,查看日志是/var/log/message
(1) MASTER
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id 10.4.7.11      # 主备不能相同enable_script_security   # 启用脚步安全script_user root         # 设置脚步执行用户
}
vrrp_script chk_nginx {script "/etc/keepalived/check_port.sh 7443"    # 检测脚本并给脚本传参 7443是nginx端口interval 2weight -20
}vrrp_instance VI_1 {state MAKSTER           # 这是主interface ens33         # 网卡名virtual_router_id 251   # 主备需要相同priority 100            # 主优先级要高于备advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx          # 跟踪脚本状态与上面的vrrp_script名称一致}virtual_ipaddress {    # 虚拟ip10.4.7.10}
}# BACKUP
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id 10.4.7.12          # 主备不能相同enable_script_security   # 启用脚步安全script_user root         # 设置脚步执行用户
}vrrp_script chk_nginx {script "/etc/keepalived/check_port.sh 7443"interval 2weight -20
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 251priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {10.4.7.10}
}# check_port.sh
#!/bin/bash
CHK_PORT=$1
if [[ -n ${CHK_PORT} ]]
thenPORT_PROCESS=`ss -lnt |grep ${CHK_PORT}|wc -l`if [[ ${PORT_PROCESS} -eq 0 ]]thenecho "Port ${CHK_PORT} is not used,End."exit 1fi
elseecho "Check Port Cant be empty!"
fi# chmod +x /etcd/keepalived/check_port.sh
2、非抢占模式 (生产环境推荐使用)
  • master上的nginx挂了backup会成为新的master,master上的nginx起来后并不会把主的角色抢占过来,需要去backup上重启keepalived才能让主的角色重新回到master。
  • 正式环境不要有注释内容,不要有多余空格,脚本要有执行权限,查看日志是 /var/log/message
# MASTER
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id 10.4.7.11enable_script_security   # 启用脚步安全script_user root         # 设置脚步执行用户
}vrrp_script chk_nginx {script "/etc/keepalived/check_port.sh 7443"interval 2weight -20
}vrrp_instance VI_1 {state MAKSTERinterface ens33virtual_router_id 251nopreempt                   # master上需要配置非抢占模式priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {10.4.7.10}
}#backup
# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id 10.4.7.12enable_script_security   # 启用脚步安全script_user root         # 设置脚步执行用户
}vrrp_script chk_nginx {script "/etc/keepalived/check_port.sh 7443"interval 2weight -20
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 251priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx}virtual_ipaddress {10.4.7.10}
}# 脚本内容
# cat /etc/keepalived/check_port.sh 
#!/bin/bash
#该脚本检测7443端口是否存在,如果不存在则退出该脚本CHK_PORT=$1
if [[ -n ${CHK_PORT} ]]
thenPORT_PROCESS=`ss -lnt |grep ${CHK_PORT}|wc -l`if [[ ${PORT_PROCESS} -eq 0 ]]thenecho "Port ${CHK_PORT} is not used,End."exit 1fi
elseecho "Check Port Cant be empty!"
fi# chmod +x /etc/keepalived/check_port.sh 

http://www.mrgr.cn/news/61781.html

相关文章:

  • IEEE二区TOP!IF=5.1连年攀升,主编慧眼识珠,大修不拒
  • 分布式项目pom配置
  • Java三大特性之继承
  • Adobe Media Encoder--将可变帧率视频转为固定帧率
  • 医院管理系统设计与实现
  • HTTP介绍及请求过程
  • ComfyUI 轻松实现二次元线稿上色,快速生成精美动漫图像(附工作流)
  • 直播美颜SDK平台开发指南:美颜API的应用与性能提升方案详解
  • 图解Redis 07 | HyperLogLog数据类型的原理及应用场景
  • 供需指标(Supply and Demand ),供给与需求,寻找支撑压力位神器 MT4免费公式!
  • DICOM标准:深入详解DICOM数据模型,理解DICOM数据模型
  • SAP系统与快递100系统集成案例
  • Helm全链路精通:从入门到实战,Kubernetes应用管理新高度
  • 机器学习中回归任务、分类任务常用的算法
  • CSP/信奥赛C++刷题训练:经典前缀和例题(4):洛谷P3662:Why Did the Cow Cross the Road II S
  • 技术星河中的璀璨灯塔 —— 青云交的非凡成长之路
  • 2024网鼎杯青龙组Web+Misc部分WP
  • 群控系统服务端开发模式-应用开发-业务架构逻辑开发Base开发总结
  • 【测试】——接口测试入门
  • 双十一狂欢节有哪些数码好物值得入手,盘点五款入手不亏的好物!
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(二)SpringBoot应用连接数据库集成mybatis-plus
  • 计算结构力学:多自由度振动系统
  • 研究线性模型训练中损失变化的规律和最优学习率的影响
  • 2024 Rust现代实用教程:1.3获取rust的库国内源以及windows下的操作
  • Infinity-MM数据集:一个包含 4000 万个样本的开源视觉语言模型的大规模多模态指令数据集。
  • 【征程 6 工具链性能分析与优化-1】编译器预估 perf 解读与性能分析