首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[keepalived]安装及基础使用

[keepalived]安装及基础使用

作者头像
master336
发布2026-06-15 19:03:10
发布2026-06-15 19:03:10
1280
举报
目录
  • 基础信息
  • 安装
    • 1. yum 安装
    • 2. 源码安装
  • 配置
    • HA配置
      • 主机配置
      • 副机配置(非主机)
    • 负载均衡配置(未验证)
  • 运行
  • 问题及维护
    • 1. 虚拟ip无法访问
    • 2. keepalived支持机器数量
    • 3. keepalived启动失败
      • 3.1 pid文件写入异常
      • 3.2 配置文件位置错误
      • 3.3 配置文件中网卡配置错误

基础信息

版本:v1.3.5 系统:CentOS 7.5

安装

1. yum 安装

代码语言:javascript
复制
yum install -y keepalived

安装结果

在这里插入图片描述
在这里插入图片描述

2. 源码安装

下载地址

代码语言:javascript
复制
# 解压
tar xvf keepalived-1.3.5.tar.gz
# 配置
cd keepalived-1.3.5
./configure
# 编译安装
make && make install

编译安装时可以设置目录,如

代码语言:javascript
复制
./configure --prefix=/usr/local/keepalived

源码安装需要安装gcc、openssl等必备软件及依赖 安装gcc 安装openssl 其他依赖也可以参照gcc和openssl的安装方式安装

配置

官方配置文件说明

在线安装时,配置文件默认位置:/etc/keepalived/keepalived.conf,(离线安装配置文件默认位置:/usr/local/etc/keepalived/keepalived.conf,注意⚠️服务默认读取配置文件位置为/etc/keepalived/keepalived.conf)此配置文件内容较全,建议将此文件备份下 当无法找到对应配置文件时,可以使用find 或者whereis命令查看下

在这里插入图片描述
在这里插入图片描述

keepalived支持ha及负载,以下配置基于如下网络及服务配置

ip

子网掩码

网卡

服务端口

192.168.1.50

255.255.254.0

ens33

8080

192.168.1.51

255.255.254.0

ens33

8080

这里服务使用python完成测试使用python快速创建http服务

HA配置

配置文件中,主要有三类配置 global_defs: 全局配置 vrrp_instance: 冗余路由配置实例 virtual_server: 虚拟服务配置(配置负载等内容)

主机配置
代码语言:javascript
复制
! 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 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.55
    }
}
副机配置(非主机)
代码语言:javascript
复制
! 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 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.55
    }
}

主、副器配置应只在实例的状态配置不一致 建议: 具体配置信息建议查看官网 官方配置文件说明

负载均衡配置(未验证)

一般用F5、nginx做负载均衡的比较多 Keepalived的配置思路是从vip的端口起开始配置,官方参考如下

代码语言:javascript
复制
virtual_server 10.10.10.3 1358 {
    delay_loop 3
    lb_algo rr 
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.200.4 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.200.5 1358 {
        weight 1
        HTTP_GET {
            url { 
              path /testurl/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl2/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            url { 
              path /testurl3/test.jsp
              digest 640205b7b0fc66c1ea91c463fac6334d
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

运行

安装完成后,会自动注册成系统服务

代码语言:javascript
复制
systemctl start keepalived   //启动keepalived
systemctl restart keepalived  //重新启动keepalived
systemctl status keepalived   //查看keepalived状态
systemctl enable keepalived  //加入开机启动keepalived
systemctl disable keepalived  //禁止开机启动keepalived

日志查看

代码语言:javascript
复制
tail -f /var/log/messages

启动后网络信息

在这里插入图片描述
在这里插入图片描述

inet 192.168.1.55/32 scope global ens33 即为虚拟ip

在这里插入图片描述
在这里插入图片描述

⚠️注意 当出现错误信息 (VI_1): Cannot start in MASTER state if not address owner

在这里插入图片描述
在这里插入图片描述

检查HA机器中有一台正常活着即是正常的 关闭192.168.1.51机器,重新访问

在这里插入图片描述
在这里插入图片描述

192.168.1.50 自动设置ip,日志如下

在这里插入图片描述
在这里插入图片描述

问题及维护

1. 虚拟ip无法访问

这个问题有以下可能导致此问题 a. 网络配置错误,虚拟ip其实也是实际存在的,只是动态的分配到机器上的,当网卡被添加虚拟ip信息后,网关、掩码等信息不正确,导致客户机无法路由到虚拟ip机器。所以建议在实施keepalived方案前建议先对网络进行划分。 b. 启用严格遵守VRRP协议(全局设置中包含:vrrp_strict),此设置不一定会导致无法使用keepalived,但如果对网络并不是十分熟悉,仍建议删除此项设置。

在这里插入图片描述
在这里插入图片描述

2. keepalived支持机器数量

说实话,我也不知道,但是弄个三五几台问题不大,从生产稳定的角度,也不建议弄太多,毕竟切换也需要时间。

3. keepalived启动失败

错误信息:Job for keepalived.service failed because a configured resource limit was exceeded. See “systemctl status keepalived.service” and “journalctl -xe” for details. 查看错误信息得知:

在这里插入图片描述
在这里插入图片描述
3.1 pid文件写入异常

修改keepalived.service

代码语言:javascript
复制
vi /lib/systemd/system/keepalived.service
#修改PIDFile=/var/run/keepalived.pid  
# 重新load以下服务
systemctl daemon-reload
3.2 配置文件位置错误

Unable to find configuration file /etc/keepalived/keepalived.conf (glob returned 3)

在这里插入图片描述
在这里插入图片描述

复制配置文件到目标目录( /etc/keepalived/keepalived.conf )

3.3 配置文件中网卡配置错误

Cant find interface ens33 for vrrp_instance VI_1 !!!

在这里插入图片描述
在这里插入图片描述

修改配置文件中网卡

代码语言:javascript
复制
# 查看网卡信息
ip a

网卡信息:

在这里插入图片描述
在这里插入图片描述

修改配置文件

在这里插入图片描述
在这里插入图片描述

重启服务即可 其他类似错误,可借助日志逐个分析原因并修正

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 基础信息
  • 安装
    • 1. yum 安装
    • 2. 源码安装
  • 配置
    • HA配置
      • 主机配置
      • 副机配置(非主机)
    • 负载均衡配置(未验证)
  • 运行
  • 问题及维护
    • 1. 虚拟ip无法访问
    • 2. keepalived支持机器数量
    • 3. keepalived启动失败
      • 3.1 pid文件写入异常
      • 3.2 配置文件位置错误
      • 3.3 配置文件中网卡配置错误
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档