nacos借助keepalived搭建高可用服务
1,安装keepalived软件,本操作系统为centos。
yum clean all
yum install -y keepalived
2,keepalived简单操作
systemctl start keepalived.service #启动keepalived
systemctl stop keepalived.service #停止keepalived
systemctl status keepalived.service #查看keepalived状态
ifconfig #查看IP网卡等
ip addr show ens192 #查看某个网卡下的ip地址
3,修改/etc/keepalived/keepalived.conf配置文件,配置内容如下:
192.168.1.100服务器:
#监控服务nacos
vrrp_script chk_nacos {
script "/etc/keepalived/chk_nacos.sh"
#每2s检查一次
interval 2
#每次检查-20
weight -20
}
vrrp_instance VI_1 {
#只有一个MASTER 其他为BACKUP
state MASTER
#网卡
interface ens192
#必须一样
virtual_router_id 51
#优先级
priority 102
advert_int 1
#本机ip
unicast_src_ip 192.168.1.100
# 其他机器ip
unicast_peer {
192.168.1.101
192.168.1.102
}
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
#检测脚本,上面配置的
chk_nacos
}
virtual_ipaddress {
#虚拟ip 是同网关下未使用的ip
192.168.1.8
}
}
192.168.1.101服务器:
#监控服务nacos
vrrp_script chk_nacos {
script "/etc/keepalived/chk_nacos.sh"
#每2s检查一次
interval 2
#每次检查-20
weight -20
}
vrrp_instance VI_1 {
#只有一个MASTER 其他为BACKUP
state BACKUP
#网卡
interface ens192
#必须一样
virtual_router_id 51
#优先级
priority 102
advert_int 1
#本机ip
unicast_src_ip 192.168.1.101
# 其他机器ip
unicast_peer {
192.168.1.100
192.168.1.102
}
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
#检测脚本,上面配置的
chk_nacos
}
virtual_ipaddress {
#虚拟ip 是同网关下未使用的ip
192.168.1.8
}
}
192.168.1.102服务器:
#监控服务nacos
vrrp_script chk_nacos {
script "/etc/keepalived/chk_nacos.sh"
#每2s检查一次
interval 2
#每次检查-20
weight -20
}
vrrp_instance VI_1 {
#只有一个MASTER 其他为BACKUP
state BACKUP
#网卡
interface ens192
#必须一样
virtual_router_id 51
#优先级
priority 102
advert_int 1
#本机ip
unicast_src_ip 192.168.1.102
# 其他机器ip
unicast_peer {
192.168.1.100
192.168.1.101
}
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
#检测脚本,上面配置的
chk_nacos
}
virtual_ipaddress {
#虚拟ip 是同网关下未使用的ip
192.168.1.8
}
}
4,建立/etc/keepalived/chk_nacos.sh脚本,三个服务器都一样。作用就是检测nacos服务是否运行,不运行就让keepalived让出master,优先级降低。让其他节点提供服务。
#!/bin/bash
COUNT=$(ps -ef | grep nacos |grep -v "chk_nacos" | grep -v "grep" | wc -l )
echo "nacos服务数量为:$COUNT"
#判断nacos 是否都挂掉了
if [ $COUNT -lt 1 ]; then
echo “nacos服务失败,让出master”
exit 1
else
echo "检测成功"
exit 0
fi
5,这样便可以搭建一个高可用的nacos服务。直接访问http:192.168.1.8:8848/nacos即可。当提供服务的nacos挂掉了,就可以切到其他可用的nacos服务器。
6,日志可以在 /var/log/messages查看