Keepalived lvs
keepalived
选举策略
首先,每个节点有一个初始优先级,由配置文件中的priority
配置项指定,MASTER 节点的 priority 应比 BAKCUP 高。运行过程中 keepalived 根据 vrrp_script 的 weight
设定,增加或减小节点优先级。规则如下:
-
weight
值为正时,脚本检测成功时”weight”值会加到”priority”上,检测失败时不加
- 主失败: 主priority < 备priority+weight之和时会切换
- 主成功: 主priority+weight之和 > 备priority+weight之和时,主依然为主,即不发生切换
-
weight
为负数时,脚本检测成功时”weight”不影响”priority”,检测失败时,Master节点的权值将是“priority“值与“weight”值之差
- 主失败: 主priotity-abs(weight) < 备priority时会发生切换
- 主成功: 主priority > 备priority 不切换
-
当两个节点的优先级相同时,以节点发送
VRRP通告
的 IP 作为比较对象,IP较大者为MASTER。
安装依赖
gcc-c++ openssl-devel libnl libnl-devel
部署文章:
https://zhuanlan.zhihu.com/p/143295216
keepalived.conf
! Configuration File for keepalived
global_defs {
router_id 51 #唯一ID
}
vrrp_instance VI_1 {
state MASTER #备机为BACKUP
interface ens33
virtual_router_id 51 #id相同为在同一主备关系中
priority 100 #优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.123/24 #虚拟ip
}
}
virtual_server 192.168.0.123 80 { #虚拟ip
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 5
protocol TCP
sorry_server 192.168.0.123 80
real_server 192.168.0.110 80 { #后端真实ip
weight 1
TCP_CHECK {
connect_timeout 10
retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.0.120 80 { #后端真实ip
weight 1
TCP_CHECK {
connect_timeout 10
retry 3
delay_before_retry 3
connect_port 80
}
}
}
#安装ipvasadm
yum install -y ipvsadm
#监测连接保持状态
watch ipvsadm -L -n -c
#查看连接记录
ipvsadm -L --stats
真实服务端配置
ifconfig命令需要安装 net-tools
ifconfig lo:0 虚拟ip netmask 255.255.255.255 broadcast 虚拟ip
/sbin/route add -host 虚拟ip dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类