keepalived搭建(本人亲测有效)

目录

1、安装keepalived

 2、查看安装情况

3、修改主配置文件

4、keepalived脚本

5、 测试


抢占模式,其流程如下:

在抢占模式中,keepalived的某台机器挂了之后VIP漂移到了备节点,当主节点恢复后主会将VIP再次抢回,这就是keepalive的抢占模式。keepalived默认工作在抢占模式下。在抢占模式中,主节点的state设为MASTER,备节点的state设为BACKUP,主节点的优先级要比备节点的优先级要高。
抢占模式 取决于优先级,哪个优先级高,谁就是master,和启动顺序无关。

非抢占模式,其流程如下:

两者的state都设为BUAKUP(官网说的),一个节点的优先级要比另一个节点的优先级要高,同时高优先级的节点设置nopreempt参数,该参数表示不抢占vip。这样,当高优先级的节点挂了之后,vip就会漂移到低优先级的节点上,但是当高优先级的节点再次恢复正常后再次起来后不会再抢回vip,因为它加了nopreempt参数。

非抢占模式 取决于启动顺序,哪个先启动,谁就是master,和优先级无关。

1、安装keepalived

yum install -y keepalived

在线安装,安装目录为

/etc/keepalived 

 2、查看安装情况

keepalived -v

 

3、抢占模式修改主配置文件

global_defs {
  router_id YJDL_HA_01 #一般是主机名称,通过hostname获取
}

#定义脚本。固定间隔时间执行
vrrp_script chk_mysql {
 script "killall -0 mysqld" #检测haproxy状态,若无对应进程,则权重降级,备用keepalived启用
 interval 2
 weight -30
 fall 5
 rise 5
}

# 定义主机信息
vrrp_instance VI_1 {
 state MASTER #主机填写MASTER
 interface ens33 #设置实例绑定的网卡
 garp_master_delay 1
 virtual_router_id 10 #虚拟路由器id号。主从必须一致
 priority 100 #定义优先级,数字越大,优先级越高
 advert_int 1 #心跳频率

unicast_src_ip 192.168.253.128 #本机ip
unicast_peer {
 192.168.253.129 #对端ip
 192.168.253.130 #对端ip
}

authentication {
 auth_type PASS
 auth_pass zuanlan1437xi
}
virtual_ipaddress {
 #192.168.112.210 dev ens33 label ens33:0
 192.168.253.219
}

#执行上面定义的脚本
track_script {
 chk_mysql
}
}

4、抢占模式修改从配置文件

global_defs {
  router_id YJDL_HA_01 #一般是主机名称,通过hostname获取
}

#定义脚本。固定间隔时间执行
vrrp_script chk_mysql {
 script "killall -0 mysqld" #检测haproxy状态。若无对应进程,则权重降级,备用keepalived启用
 interval 2
 weight -30
 fall 5
 rise 5
}

# 定义主机信息
vrrp_instance VI_1 {
 state BACKUP #主机填写MASTER
 interface ens33 #设置实例绑定的网卡
 garp_master_delay 1
 virtual_router_id 10 #虚拟路由器id号。主从必须一致
 priority 90 #定义优先级,数字越大,优先级越高
 advert_int 1 #心跳频率

unicast_src_ip 192.168.253.129 #本机ip
unicast_peer {
 192.168.253.128 #对端ip
 192.168.253.130 #对端ip
}

authentication {
 auth_type PASS
 auth_pass zuanlan1437xi
}
virtual_ipaddress {
 #192.168.112.210 dev ens33 label ens33:0
 192.168.253.219
}

#执行上面定义的脚本
track_script {
 chk_mysql
}
}

 5、非抢占模式修改主配置文件

global_defs {
  router_id YJDL_HA_01 #一般是主机名称,通过hostname获取
}

#定义脚本。固定间隔时间执行
vrrp_script chk_mysql {
 script "killall -0 mysqld" #检测haproxy状态,若无对应进程,则权重降级,备用keepalived启用
 interval 2
 weight -30
 fall 5
 rise 5
}

# 定义主机信息
vrrp_instance VI_1 {
 state BACKUP#主机填写BACKUP
 interface ens33 #设置实例绑定的网卡
 nopreempt
 garp_master_delay 1
 virtual_router_id 10 #虚拟路由器id号。主从必须一致
 priority 100 #定义优先级,数字越大,优先级越高
 advert_int 1 #心跳频率

unicast_src_ip 192.168.253.128 #本机ip
unicast_peer {
 192.168.253.129 #对端ip
 192.168.253.130 #对端ip
}

authentication {
 auth_type PASS
 auth_pass zuanlan1437xi
}
virtual_ipaddress {
 #192.168.112.210 dev ens33 label ens33:0
 192.168.253.219
}

#执行上面定义的脚本
track_script {
 chk_mysql
}
}

6、非抢占模式修改从配置文件

global_defs {
  router_id YJDL_HA_01 #一般是主机名称,通过hostname获取
}

#定义脚本。固定间隔时间执行
vrrp_script chk_mysql {
 script "killall -0 mysqld" #检测haproxy状态。若无对应进程,则权重降级,备用keepalived启用
 interval 2
 weight -30
 fall 5
 rise 5
}

# 定义主机信息
vrrp_instance VI_1 {
 state BACKUP #主机填写BACKUP
 interface ens33 #设置实例绑定的网卡
 garp_master_delay 1
 nopreempt
 virtual_router_id 10 #虚拟路由器id号。主从必须一致
 priority 90 #定义优先级,数字越大,优先级越高
 advert_int 1 #心跳频率

unicast_src_ip 192.168.253.129 #本机ip
unicast_peer {
 192.168.253.128 #对端ip
 192.168.253.130 #对端ip
}

authentication {
 auth_type PASS
 auth_pass zuanlan1437xi
}
virtual_ipaddress {
 #192.168.112.210 dev ens33 label ens33:0
 192.168.253.219
}

#执行上面定义的脚本
track_script {
 chk_mysql
}
}

4、keepalived脚本

systemctl start keepalived.service  #启动服务

systemctl stop keepalived.service #关闭服务

systemctl status keepalived.service #服务状态

5、 测试

使用命令

 ip addr

关闭此服务

systemctl stop keepalieved.service

查看备服务器,说明成功切换

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值