keepalived 高可用集群

本文详细介绍了使用Keepalived和Nginx搭建高可用集群的方法,包括Keepalived的工作原理、VRRP协议实现、集群环境配置、服务状态监控脚本编写等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高可用方案
keepalived  heartbeat  pacemaker
keepalived含义
是集群管理中保证集群高可用的一个服务软件,用来防止单点故障
keepalived的工作原理

是以VRRP(虚拟路由冗余协议)协议实现的

将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,
master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),
master会发组播,当backup收不到vrrp包时就认为master宕掉了,
这时就需要根据VRRP的优先级来选举一个backup当master
环境
server1:10.0.0.134
server2:10.0.0.133
VIP:10.0.0.111
配置
server1
安装及配置keepalived
yum -y install keepalived

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
 router_id 1                            #设备在组中的标识,可以一样也可以不一样
 }

#vrrp_script chk_nginx {                        #健康检查
# script "/etc/keepalived/ck_ng.sh"     #检查脚本
# interval 2                            #检查频率.秒
# weight -5                             #priority减5
# fall 3                                        #失败三次
# }

vrrp_instance VI_1 {               #VI_1。实例名两台路由器相同。同学们要注意区分。
    state MASTER                        #主或者从状态
    interface ens33                     #监控网卡
    mcast_src_ip 10.0.0.134          #心跳源IP
    virtual_router_id 55                #虚拟路由编号,主备要一致。同学们注意区分
    priority 100                        #优先级
    advert_int 1                        #心跳间隔

    authentication {                    #秘钥认证(1-8位)
        auth_type PASS
        auth_pass 123456
    }

    virtual_ipaddress {                 #VIP
    10.0.0.111/24
        }

#  track_script {                       #引用脚本
#       chk_nginx
#    }

}

systemctl start keepalived.service
安装web服务nginx

yum -y install nginx
systemctl start nginx.service

vi /usr/share/nginx/html/index.html
111
server2
安装及配置keepalived
yum -y install keepalived

vi /etc/keepalived/keepalived.conf
state MASTER改为  state BACKUP
mcast_src_ip 10.0.0.134改为backup服务器实际的IP mcast_src_ip 10.0.0.133
priority 100改为priority 99

systemctl start keepalived.service
安装web服务nginx

yum -y install nginx
systemctl start nginx.service

vi /usr/share/nginx/html/index.html
222
服务的状态和keepalived的关系
keepalived监控的是接口IP状态。无法监控服务状态
监控脚本
server1和server2
vim /etc/keepalived/ck_ng.sh
#!/bin/bash
#检查nginx进程是否存在
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
#尝试启动一次nginx,停止5秒后再次检测
    systemctl start nginx
    sleep 5
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
#如果启动没成功,就杀掉keepalive触发主备切换
        systemctl stop keepalived
    fi
fi

chmod +x /etc/keepalived/ck_ng.sh
进入/etc/keepalived/keepalived.conf配置文件,清楚掉其中的注释部分,重启keepalived
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值