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

}

}

相关推荐
坤坤子吖3 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
Sayai3 小时前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher
青瓦梦滋3 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
Elastic 中国社区官方博客4 小时前
更少的位数,相同的召回率:DiskBBQ 更保守的自动校准扫描
大数据·运维·开发语言·人工智能·elasticsearch·搜索引擎
方便面不加香菜4 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
沫璃染墨4 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
Felven5 小时前
华为鲲鹏920s芯片serdestool工具使用说明
linux·运维·服务器·华为·鲲鹏920·serdestool
江湖有缘5 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
LabVIEW开发5 小时前
Omron PLC:接 LabVIEW 常踩的 5 个坑
服务器·网络·labview·labview知识·labview功能·labview程序
莫晓燚5 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器