Keepalived高可用集群企业应用实例一

一、实现master/slave的keepalived单主架构

1.master配置

global_defs {

notification_email {

2676401238@qq.com

}

notification_email_from keepalived@KA1.xiao.org

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id ka1.xiao.org

vrrp_skip_check_adv_addr

vrrp_garp_interval 0

vrrp_gna_interval 0

vrrp_mcast_group4 224.0.0.18

vrrp_instance VI_1{

state MASTER

interface eth0

virtual_router_id 20

priority 100

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

}

2.backup配置

global_defs {

notification_email {

2676401238@qq.com

}

notification_email_from keepalived@KA1.xiao.org

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id ka2.xiao.org

vrrp_skip_check_adv_addr

vrrp_garp_interval 0

vrrp_gna_interval 0

vrrp_mcast_group4 224.0.0.18

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 80

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

}

3.抢占模式和非抢占模式

非抢占模式 nopreempt

默认为抢占模式,即当高优先级的主机恢复在线后,会抢占低优先级的主机的master角色,这样会使vip在ka主机中来回漂移造成网络抖动,一般会设置为nopreempt,即高优先级主机恢复后并不会抢占低优先级的master角色。非抢占模式下,如果原主机down机,vip迁移到新主机,后续也发生down时,仍会将vip迁移回原主机

要关闭vip抢占,必将各keepalived服务器state配置为backup

ka1主机配置

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 100

nopreempt

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

ka2主机配置

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 80

nopreempt

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

4.抢占延迟模式preempt_delay

抢占延迟模式,即优先级高的主机恢复后不会立即抢占vip,而是延迟一段时间(默认是300a)再抢回vip

preempt_delay 指定抢占延迟时间

各keepalived服务器state的状态为backup,并且不启动vrrp_strict

ka1主机的配置

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 100

preempt_delay 10s

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

ka2主机的配置

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 80

preemp_delay 10s

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

5.vip单播配置

默认keepalived主机之间利用多播相互通告消息会造成网络拥塞,可以将其替换为单播来减少网络流量

启用vrrp_strict时,不能启用单播

设置方式:在vrrp_instance的语句块中设置对方主机的ip地址,一般设置为专用于对应心跳线网络的地址而非使用业务网络

unicast_src_ip xxx 指定发送单播的源ip

unicast_peer {

ipaddr 指定接收单播的对方目标主机ip

}

6.keepalived通知脚本配置

当keepalived的状态变化时可以自动触发脚本的执行,比如发邮件通知用户,其默认以keepalived_script身份执行脚本。

global_defs {

script_user <USER>

}

通知脚本类型:当前节点成为主节点时触发的脚本

notify_master <String>

当前节点转为备节点时触发的脚本

notify_backup <String>

当前节点转为失败状态时触发的脚本

notify_fault <String>

通用格式的通知触发机制

notify <String>

当停止vrrp时触发的脚本

notify_stop <string>

脚本的调用方法:

在vrrp_instance VI_1语句块的末尾加上:

notify_master "/etc/keepalived/notify.sh master"

notify_backup "/etc/keepalived/notify.sh backup"

notify_fault "/etc/keepalived/notify.sh fault"

二、实现master/master的keepalived双主架构

1.master/slave的单主架构,同一时间只有一个keepalived对外提供服务,此主机繁忙,另一台主机却空闲,利用率低下

2.master/master的双主架构:

将两个或以上vip分别运行在不同的keeoalived服务器上,以实现服务器并行提供web访问的目的提高资源的利用率

ka1的配置信息

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 80

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

vrrp_instance VI_2{

state BACKUP

interface eth0

virtual_router_id 30

priority 80

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.101/24 dev eth0 label eth0:1

}

}

ka2的配置信息

vrrp_instance VI_1{

state BACKUP

interface eth0

virtual_router_id 20

priority 100

nopreempt

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.100/24 dev eth0 label eth0:0

}

}

vrrp_instance VI_2{

state MASTER

interface eth0

virtual_router_id 30

priority 100

advert_int 1

authentication {

auth_type pass

auth_pass 1111

}

virtual_ipaddress {

172.25.254.101/24 dev eth0 label eth0:1

}

}

相关推荐
虎头金猫19 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站20 小时前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏21 小时前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅1 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog1 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
琥珀色糖1 天前
SimlpeHttp
linux·服务器
其实防守也摸鱼1 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
第十人i1 天前
Linux 日志管理系统:journald 配置与优化
linux·服务器
布裘1 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境