Linux下搭建高可用Keepalived运行环境

创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!

1 前言

keepalived是一款可以实现高可用的软件(可以用来实现双机热备),通常来说,我们会部署在2台或者3台服务器上,分为一主一备(2备)。Keepalived内部C语言实现的有一套机制,可以对本机上的进程进行检测,一旦Master(主)节点检测出某个进程出现问题,将自己切换成Backup(备用)状态,然后通知另外一个备用节点切换成Master(主)节点状态。

2 下载keepalived安装包

下载链接: https://www.keepalived.org/download.html

本文以 keepalived-2.0.20 版本为例,介绍keepalived的安装过程。

3 安装keepalived

在Linux上安装软件可以选择yum安装rpm包安装.tar.gz的源码包安装,对于.tar.gz的源码包安装,经常会用到了./configure脚本,比如说nginx、keepalived等等。

configure脚本有大量的命令行选项,可以通过–help可以查看:./configure --help

3.1 安装相关依赖

安装keepalived跟安装nginx一样,也需要一些依赖环境。

添加依赖,执行以下命令:
yum install openssl openssl-devel libnl libnl-devel -y

3.2 解压缩下载的安装包文件

使用以下命令:
tar -zxvf keepalived-2.0.20.tar.gz

3.3 安装配置keepalived

configure需要的依赖: openssllibnl

  • 进入keepalived-2.0.20目录
    cd keepalived-2.0.20/

  • 执行配置
    ./configure --prefix=/usr/local/keepalived
    其中--prefix是指定要将keepalived安装到哪个位置
    在这里插入图片描述
    以上configure配置没有错误和警告,说明配置成功。

  • 执行编译
    make
    在这里插入图片描述
    出现如上框起来的内容,说明make编译成功(以上可能会出现warning,不影响使用)。

  • 执行安装
    make install
    这一步执行完之后,才会真正的在/usr/local/下生成安装的目录keepalived

    也可以将上面的编译和安装,使用一条命令执行:
    make && make install

3.4 编译可能出现的问题

  • 第一种错误

    configure: error: 
      !!! OpenSSL is not properly installed on your system. !!!
      !!! Can not include OpenSSL headers files. 
    

    这个错误说明,没有openssl依赖,执行以下命令,安装openssl:
    yum install openssl openssl-devel -y

  • 第一种错误

    *** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
    

    以上警告问题,说明没有libnl依赖,执行以下命令安装libnl依赖:
    yum install libnl libnl-devel -y

  • 第一种错误

    configure: error: in `/opt/mysoft/keepalived-2.0.11':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details
    

    这个error错误说明缺少c语言编译器,没有c语言编译依赖,执行以下命令,安装gcc:
    yum install gcc

至此,keepalived就安装完成了

4 keepalived的启动与停止

4.1 keepalived的启动

  • 启动keepalived使用以下命令:
    /usr/local/keepalived/sbin/keepalived -D

    注意:
    以上启动方式,会出现Unable to find configuration file /etc/keepalived/keepalived.conf (glob returned 3),导致服务启动失败,因为配置文件默认需要放在/etc/keepalived目录下,启动的时候找这个配置文件,所以需要把配置文件拷贝到/etc/keepalived/目录下。

    使用命令,将keepalived配置文件拷贝到etc下:
    mkdir /etc/keepalived && cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

  • 启动keepalived的另一种方式(推荐使用):
    /usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf

    参数说明:
    -D表示把启动信息打印到日志记录,即/var/log/messages可以查看到keepalived的日志信息
    -f指定keepalived.conf的配置文件路径

    在这里插入图片描述
    keepalived服务启动成功后会有三个进程,包括父进程vrrp子进程,原来老版本还有一个healthchecker子进程,现在新版本已经没有了。父进程主要负责读取配置文件初始化 、监控子进程等,vrrp子进程负责高可用

4.2 keepalived的停止

执行命令:
kill 主pid即可关闭keepalived服务

如果已经将keepalived添加到系统服务中,可以使用以下命令进行关闭服务:
service keepalived stop 或者systemctl stop keepalived

5 将keepalived添加到系统服务中

5.1 第一种方式(推荐)

为了方便启动和停止keepalived服务,将keepalived添加到系统服务中。

可以直接修改配置文件:vim /lib/systemd/system/keepalived.service

修改后的内容如下:

[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/usr/local/keepalived/etc/sysconfig/keepalived
#ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS
ExecStart=/usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Run systemctl daemon-reload to reload units:
使用systemctl daemon-reload命令重新加载systemctl配置

此时已加入系统服务,可以使用systemctl或者services方式启动与停止。

5.2 第二种方式

为了方便启动和停止keepalived服务,将keepalived添加到系统服务中。

路径说明路径
解压后源码存放路径/opt/mysoft/keepalived-2.0.10
安装目录/usr/local/keepalived

配置keepalived自启动:

# 创建keepalived文件夹
mkdir /etc/keepalived/

# 将keepalived配置文件拷贝到etc下
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

# 拷贝执行文件
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

# 将初始化脚本拷贝到系统初始化目录下
cp /opt/mysoft/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/

# 将keepalived系统配置文件拷贝到etc下
cp /opt/mysoft/keepalived-2.0.20/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

# 添加可执行权限
chmod +x /etc/init.d/keepalived

# 添加keepalived到开机启动
chkconfig --add keepalived
chkconfig keepalived on

# 查看添加到chkconfig的自启动服务
chkconfig --list

此时已加入系统服务,可以使用systemctl或者services方式启动与停止。

5.3 自启动后keepalived的启动和停止

  • 启动keepalived服务
    systemctl start keepalived或者service keepalived start

  • 停止keepalived服务
    systemctl stop keepalived或者service keepalived stop

  • 重启keepalived服务
    systemctl restart keepalived或者service keepalived restart

  • 查看keepalived服务运行情况
    ps -ef | grep keepalived或者systemctl status keepalived或者service keepalived status

  • 禁止keepalived开机自启动
    systemctl disable keepalived

  • 启用keepalived开机自启动
    systemctl enable keepalived

好啦,至此,基础的keepalived服务运行环境就安装完成了。keepalived的基础使用,可以参考博主另一篇博文:服务高可用之Keepalived使用详解

本文参考资料: https://www.jianshu.com/p/fae5e3252fc8

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家评论,一起探讨,代码如有问题,欢迎各位大神指正!

给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
nginx是一款开源的高性能HTTP服务器和反向代理服务器。它通过处理客户端的请求,并将其转发到后端的多个服务器上以实现负载均衡,提高系统的稳定性和可扩展性。 而要实现nginx高可用性,可以使用keepalived和LVS(Linux Virtual Server)。 keepalived可以将多台服务器组成一个虚拟的高可用集群,其中一台服务器作为主服务器(Master),其他服务器作为备份服务器(Backup)。keepalived通过监控主服务器的状态,当主服务器宕机时,会自动将备份服务器切换为主服务器,确保服务的持续可用。这种方式实现了高可用性,提高了系统的稳定性。 而LVS则是一种软件负载均衡解决方案,它将多个服务器组成一个虚拟服务器,利用IP负载均衡技术将客户端请求平均分发到后端的多台服务器上,实现了负载均衡和高可用性。LVS可以通过不同的调度算法(如RR、WRR、DR等)来选择合适的后端服务器,以提高系统的性能和可扩展性。 结合keepalived和LVS,我们可以搭建一个高可用nginx集群。通过keepalived的主备切换机制,以及LVS的负载均衡技术,可以确保即使其中一台服务器发生故障,整个系统仍然可以正常运行,从而提高了系统的可靠性和可用性。 总之,nginx可以通过结合keepalived和LVS来实现高可用性和负载均衡,这对于保障系统的稳定运行和提升用户体验具有重要意义。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值