LVS+keepalived集群

目录

keepalived概念

抢占与非抢占

主要模块

部署


keepalived概念

keepalived 其实和DR模式整体框架非常类似,只是多了一个备用服务器,基于VRRP协议来实现高可用,预防单点故障。

同样的,整个集群对外也表现为一个虚拟ip,有主服务器(MASTER)和备用服务器(BACKUP),原理与VRRP协议相同,主服务器在工作时会发送心跳报文给备用服务器,告诉备用服务器自身的存活状态,当备用服务器不再收到主服务器的报文时,默认主服务器宕机,此时备用服务器承担起转发数据等工作,在此之前,备用服务器只对主服务器进行监听,不参与任何工作。

抢占与非抢占

在最初设置的时候,两台服务器会根据预设的优先级,选举出MASTER,另一台服务器为BACKUP。和VRRP协议一样,不过多赘述,配置里有一个抢占模式,可以稍微叙述一下。如果两台服务器配置了抢占模式,在MASTER从故障中恢复后,会重新接管工作,BACKUP顶替了一段时间继续恢复只监听不工作的状态,这就是抢占模式,很好理解;非抢占模式就是,MASTER从故障中恢复后,默认成为BACKUP,原来的BACKUP晋级成为MASTER,接管工作。

主要模块

keepalived 有几个主要模块

core模块:core模块是keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。

vrrp模块:是来实现VRRP协议的。

check模块:负责健康检查,常见的方式有端口检查及URL检查。

部署

模拟 keepalived 的部署需要至少三台机器,我准备了四台,使用nginx 来实现keepalived高可用

首先确认两台机器里都有keepalived 和 nginx 服务,nginx需要安装,keepalived 可以 yum

主:172.16.233.101

备:172.16.233.102

web1:172.16.233.103

web2:172.16.233.104

然后我们对两台机器进行同样的配置,只有略微不同

vim /etc/keepalived/keepalived.conf

备用服务器按照文字那样写就行,其他的完全一样

源码:

! Configuration File for keepalived

global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 172.16.233.101

   smtp_connect_timeout 30

   router_id LVS_01

   vrrp_skip_check_adv_addr

#  vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}

vrrp_script chk_http_ port {

    script "/usr/local/src/nginx_check.sh"

    interval 2

    weight 2

vrrp_instance VI_1 {

    state MASTER

    interface ens33

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 123123

    }

    virtual_ipaddress {

        172.16.233.150

    }

}

如果不采用nginx的话后面需要加上virtual_server、real_server等配置

随后在脚本识别的目录里创建脚本文件

赋权

chmod +x  .....

重启nginx和keepalived 服务即可

systemctl restart nginx

systemctl restart keepalived

来到网页进行测试

输入172.16.233.150(虚拟ip)

现在我们关掉主服务器的服务,看看备用服务器能不能顶上

为了区分页面,我在备用服务器的 /usr/local/nginx/html/index.html 网页里的<body>内添加了一段

---备用服务器

然后在主配置文件server模块下,修改字符集编译中文

charset utf-8

重启nginx

我们再刷新页面

备用服务器顶上去了,配置完成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值