您的位置:首页 > 财经 > 产业 > LVS+keepalived集群

LVS+keepalived集群

2024/11/17 5:32:45 来源:https://blog.csdn.net/qq_59677536/article/details/141602779  浏览:    关键词: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

我们再刷新页面

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com