linux keepalived双主模式,keepalived双主模型高可用Nginx服务

ip link set multicast on interface

配置语法:

配置虚拟路由器:

vrrp_instance {

………

}

专用参数:

state MASTER|BACKUP:当前节点在此虚拟路由器上的初始状态;只能有一个是MASTER,余下的都应该为BACKUP;

interface IFACE_NAME:绑定为当前虚拟路由器使用的物理接口;

virtual_router_id VRID:当前虚拟路由器的惟一标识,范围是0-255;

priority 100:当前主机在此虚拟路径器中的优先级;范围1-254;

advert_int 1:vrrp通告的时间间隔;

authentication {

auth_type AH|PASS

auth_pass (这里为任意的8个字符,各节点要保持一致

可以用“openssl rand -base64 7”生成)

}

virtual_ipaddress {

/ brd dev scope label

例如:192.168.200.17/24 dev eth1

192.168.200.18/24 dev eth2 label eth2:1

}

track_interface {

eth0

eth1

}

配置要监控的网络接口,一旦接口出现故障,则转为FAULT状态;

nopreempt:定义工作模式为非抢占模式;

preempt_delay 300:抢占式模式下,节点上线后触发新选举操作的延迟时长;

vrrp_script {

script “”

interval INT 每隔多长时间脚本执行一次

weight -INT 减去的优先级

}

track_script {                               #跟踪监控脚本,放在vrrp_instance中

SCRIPT_NAME_1

SCRIPT_NAME_2

}

双主模型示例:

vim /etc/keepalived/keepalived.conf

节点一配置:

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1

vrrp_mcast_group4 224.0.100.19(组播地址自行定义)

}

3c8ce6380daa33c267ccb0e2e66a02de.png

节点二配置:! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node2

vrrp_mcast_group4 224.0.100.19(组播地址自行定义,要与节点一一直)

}

3c8ce6380daa33c267ccb0e2e66a02de.png

通过systemctl status keepalived.service查看结果

高可用:

keepalived调用外部的辅助脚本进行资源监控,并根据监控的结果状态能实现优先动态调整;

分两步:(1) 先定义一个脚本,为MASTER时启动nginx,BACKUP时关闭nginx,对于双主模型,只需启动不能关闭,地址转移走后可以重启,但是不能关闭;(2) 调用此脚本;

在各个节点上定义通知脚本,放在vrrp_instance中:

notify_master |:当前节点成为主节点时触发的脚本;

notify_backup |:当前节点转为备节点时触发的脚本;

notify_fault |:当前节点转为“失败”状态时触发的脚本;

notify |:通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知;

通知脚本配置:

3c8ce6380daa33c267ccb0e2e66a02de.png

节点配置示例:

在配置文件中加入下图中的配置

vrrp_script chk_down {

script “[[ -f /etc/keepalived/down ]] && exit 1 || exit 0”

……….

}

vrrp_script chk_nginx {

script “killall -0 nginx && exit 0 || exit 1” killall -0 测试能否杀掉进程 用来查询nginx进程是否存在

interval 1

………

fall 1 检查1次

rise  1 若是之后检查是正常的则把权重加回去

}

配置示例:

! Configuration File for keepalived

global_defs {

notification_email {

root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id node1

vrrp_mcast_group4 224.0.100.19

}

vrrp_script chk_down {

script “[[ -f /etc/keepalived/down ]] && exit 1 || exit 0”

weight -10

interval 1

fall 1

rise 1

}

vrrp_script chk_ngx {

script ” killall -0 nginx && exit 0 || exit 1″

weight -10

interval 1

fall 1

rise 1

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass tEtMBpfA

}

virtual_ipaddress {

172.16.0.66/16 dev ens33 label ens33:0

}

track_script {

chk_down

chk_nginx

}

notify_master “/etc/keepalived/notify.sh master”

notify_backup “/etc/keepalived/notify.sh backup”

notify_fault “/etc/keepalived/notify.sh fault”

}

vrrp_instance VI_2 {

state  BACKUP

interface ens33

virtual_router_id 41

priority 96

advert_int 1

authentication {

auth_type PASS

auth_pass d/aiJhXT

}

virtual_ipaddress {

172.16.0.67/16 dev ens33 label ens33:1

}

}

track_script {

chk_down

chk_nginx

}

notify_master “/etc/keepalived/notify.sh master”

notify_backup “/etc/keepalived/notify.sh backup”

notify_fault “/etc/keepalived/notify.sh fault”

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值