创作不易,如果觉得这篇文章对你有帮助,欢迎各位老铁点个赞呗,您的支持是我创作的最大动力!
文章目录
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需要的依赖: openssl
、libnl
-
进入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
写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!
如果有什么问题,欢迎大家评论,一起探讨,代码如有问题,欢迎各位大神指正!
给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!