Keepalived实现主备切换
Posted 秋风飒飒吹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keepalived实现主备切换相关的知识,希望对你有一定的参考价值。
目前有一个需求:有两台机器,上面部署了相同的服务,平时情况下,由master处理请求;master宕机后,由backup处理请求;master重连后,重新由backup处理请求。
实现的方式有很多,我这里由keepalived简单实现。
安装keepalived
yum install -y conntrack-tools libseccomp libtool-ltdl
yum install -y keepalived
相关配置
这里有两台服务器:
ip | 角色 | 端口 |
---|---|---|
192.168.1.73 | master | 8080 |
192.168.1.74 | backup | 8080 |
vip:192.168.1.76 | 虚拟ip | 8080 |
192.168.1.73的代码:
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "test1";
}
}
192.168.1.74的代码:
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "test2";
}
}
192.168.1.73配置:
vi /etc/keepalived/keepalived.conf
global_defs {
router_id kpd
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 51
priority 250
advert_int 1
authentication {
auth_type PASS
auth_pass ceb1b3ec013d66163d6ab
}
virtual_ipaddress {
192.168.1.76
}
}
注意vrrp_instance代码块中的interface跟下面红框内容一致:
192.168.1.74配置:
vi /etc/keepalived/keepalived.conf
global_defs {
router_id kpd
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 51
priority 249
advert_int 1
authentication {
auth_type PASS
auth_pass ceb1b3ec013d66163d6ab
}
virtual_ipaddress {
192.168.1.76
}
}
启动服务:
systemctl start keepalived.service
systemctl enable keepalived.service
测试keepalived
先看192.168.1.73的ip
这里vip落到了192.168.1.73上面,说明master配置没有问题。
访问:192.168.1.76:8080/test,返回的是73服务器的结果,间接说明master节点工作。
现关闭192.168.1.73服务器
shutdown -h now
查看192.168.1.74服务器:
vip落到了192.168.1.74服务器,backup开始工作,继续访问:192.168.1.76:8080/test,返回74服务器的代码,至此无问题。
重新开启192.168.1.73服务器:查看vip变化
这里vip又重新落到192.168.1.73这台master服务器,启动73后台java服务,并访问192.168.1.76:8080/test
master重新提供服务。
以上是关于Keepalived实现主备切换的主要内容,如果未能解决你的问题,请参考以下文章