2025年4月11日 星期五 乙巳(蛇)年 正月十二 夜 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > 网络服务

Keepalived——概念、安装部署、配置、主从配置、双主热备

时间:06-16来源:作者:点击数:28

Keepalived概念

解决单点故障

组件免费

可以实现高可用HA机制

基于VRRP协议

虚拟路由冗余协议VRRP

Virtual Router Redundancy Protocol

解决内网单机故障的路由协议

构建有多个路由器MASTER BACKUP

虚拟IP - VIP(Virtual IP Address)

Keepalived安装部署

1.下载地址:Keepalived for Linux

2.通过ftp工具上传到linux中,/home/software

3.解压

  • tar -zxvf keepalived-2.2.4.tar.gz

4.解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了(配置安装和nginx一模一样)

5.使用configure命令配置安装目录与核心配置文件所在位置:

  • ./configure --prefix=/usr/local/keepalived --sysconf=/etc

prefix:keepalived安装的位置

sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了,/var/log/messages中会报错

5.1 配置过程中可能会出现警告信息,如下所示:

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

5.2 安装libnl、libnl-3依赖

  • yum -y install libnl libnl-devel

5.3 重新configure一下,此时OK。

6.安装keepalived

  • # 两种方式都可以:
  • # 第一种
  • make && make install
  • # 第二种
  • # 编译
  • make
  • # 安装
  • make install

7.进入到/etc/keepalived,该目录下为keepalived核心配置文件

 如果忘记安装配置的目录,则通过如下命令找到:

Keepalived配置-主Master

1.通过命令vim keepalived.conf打开配置文件

  • global_defs {
  • # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
  • router_id keep_171
  • }
  • vrrp_instance VI_1 {
  • # 表示状态是MASTER主机还是备用机BACKUP
  • state MASTER
  • # 该实例绑定的网卡
  • interface ens0
  • # 保证主备节点一致即可
  • virtual_router_id 51
  • # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
  • priority 100
  • # 主备之间同步检查时间间隔,单位秒
  • advert_int 2
  • # 认证权限密码,防止非法节点进入
  • authentication {
  • auth_type PASS
  • auth_pass 1111
  • }
  • # 虚拟出来的ip,可以有多个(v_ip)
  • virtual_ipaddress {
  • 192.168.1.100
  • }
  • }

查看网卡名称命令: ifconfig

2.启动Keepalived

在sbin目录中进行启动(同nginx),如下图:

3.查看进程

  • ps -ef | grep keepalived

4.查看ip

在网卡ens0下,多了一个192.168.1.100,这个就是虚拟v_ip。

 Keepalived配置-备Backup

1.通过命令 vim keepalived.conf 打开配置文件

  • global_defs {
  • router_id keep_172
  • }
  • vrrp_instance VI_1 {
  • # 备用机设置为BACKUP
  • state BACKUP
  • interface ens0
  • virtual_router_id 51
  • # 权重低于MASTER
  • priority 80
  • advert_int 2
  • authentication {
  • auth_type PASS
  • auth_pass 1111
  • }
  • virtual_ipaddress {
  • # 注意:主备两台的v_ip都是一样的,绑定到同一个v_ip
  • 192.168.1.100
  • }
  • }

2.启动Keepalived

  • # 启动keepalived
  • systemctl start keepalived
  • # 停止keepalived
  • systemctl stop keepalived
  • # 重启keepalived
  • systemctl restart keepalived

3.查看进程

  • ps -ef|grep keepalived

Kepalived配置Nginx自动重启

1.增加Nginx重启检测脚本

  • vim /etc/keepalived/check_nginx_alive_or_not.sh
  • #!/bin/bash
  • A=`ps -C nginx --no-header |wc -l`
  • # 判断nginx是否宕机,如果宕机了,尝试重启
  • if [ $A -eq 0 ];then
  • /usr/local/nginx/sbin/nginx
  • # 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
  • sleep 3
  • if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
  • killall keepalived
  • fi
  • fi

增加权限命令:chmod +x /etc/keepalived/check_nginx_alive_or_not.sh

2.配置keepalived监听nginx脚本,keepalived.conf文件中

  • vrrp_script check_nginx_alive {
  • script "/etc/keepalived/check_nginx_alive_or_not.sh"
  • interval 2 # 每隔两秒运行上一行脚本
  • weight 10 # 如果脚本运行成功,则升级权重+10
  • # weight -10 # 如果脚本运行失败,则升级权重-10
  • }

3.在vrrp_instance中新增监控的脚本

  • track_script {
  • check_nginx_alive # 追踪 nginx 脚本
  • }

4.重启Keepalived使得配置文件生效

  • systemctl restart keepalived

Keepalived配置双主热备

规则:以一个虚拟ip分组归为同一个路由

主节点配置:

  • global_defs {
  • router_id keep_171
  • }
  • vrrp_instance VI_1 {
  • state MASTER
  • interface ens0
  • virtual_router_id 51
  • priority 100
  • advert_int 1
  • authentication {
  • auth_type PASS
  • auth_pass 1111
  • }
  • virtual_ipaddress {
  • 192.168.1.100
  • }
  • }
  • vrrp_instance VI_2 {
  • state BACKUP
  • interface ens0
  • virtual_router_id 52
  • priority 80
  • advert_int 1
  • authentication {
  • auth_type PASS
  • auth_pass 1111
  • }
  • virtual_ipaddress {
  • 192.168.1.101
  • }
  • }

备用节点配置:

  • global_defs {
  • router_id keep_172
  • }
  • vrrp_instance VI_1 {
  • state BACKUP
  • interface ens0
  • virtual_router_id 51
  • priority 80
  • advert_int 1
  • authentication {
  • auth_type PASS
  • auth_pass 1111
  • }
  • virtual_ipaddress {
  • 192.168.1.100
  • }
  • }
  • vrrp_instance VI_2 {
  • state MASTER
  • interface ens0
  • virtual_router_id 52
  • priority 100
  • advert_int 1
  • authentication {
  • auth_type PASS
  • auth_pass 1111
  • }
  • virtual_ipaddress {
  • 192.168.1.101
  • }
  • }

注意:分别重启两条Keepalived

  • # 重启Keepalived
  • systemctl restart keepalived
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门