keepalived 安装及使用

两点说明

  1. 本文不讲 keepalived 的工做机制及原理服务器

  2. 我的实验采用的源码安装的方式进行的安装,比较麻烦。负载均衡

经过 yum 安装会更快,方法以下:rest

yum install keepalived

启动/关闭/重启/查看状态code

systemctl start/stop/restart/status keepalived

编辑配置文件router

vi /ect/keepalived/keepalived.conf

所以采用 yum 安装能够直接跳到 第 5 步。server

注意:进程

无论是哪一种方式安装,关注点在 配置文件 和 启动脚本的位置。ip

1. 下载源码包

wget https://www.keepalived.org/software/keepalived-1.2.16.tar.gz

2. 安装

  • mkdir keepalived-1.2.16ssl

  • tar -zxvf keepalived-1.2.16.tar.gz -C keepalived-1.2.16get

  • cd keepalived-1.2.16

  • ./configure

若是出现以下错误

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

解决办法: yum -y install openssl-devel

  • make

  • make install

3. 配置

  • /bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

  • mkdir /etc/keepalived # 复制配置文件

  • /bin/cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived

  • /bin/cp /usr/local/sbin/keepalived /usr/sbin/

4. 启动 和 关闭 keepalived

启动

/etc/init.d/keepalived start

查看进程

ps -ef | grep keepalived

关闭

/etc/init.d/keepalived stop

5. 使用

我采用的 keepalived-1.2.16 版本。版本功能差别,以及配置文件差别不肯定。 如下所有基于 1.2.16 版本。

5.1 配置文件

! Configuration File for keepalived

# 暂时没什么用,只需改最后一个字段 router_id
global_defs {
   notification_email {
     1111@163.com # 收件人配置
     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_01 
}

# 检测脚本
vrrp_script checkTest
{
		# 脚本所在路径
    script "/mano/module/checkTest.sh"
    interval 3 
    weight -20
}

# vrrp 实例,能够有多个实例,可是好像有个数限制
# 须要改的地方 
# 1. state 主 :MASTER 备 :BACKUP
# 2. virtual_router_id 主备保持一致 
# 3. priority 一大一小
# 4. virtual_ipaddress 主备保持一致
vrrp_instance VI_1 { 
    state MASTER # 服务器状态:主, 若是是备用服务器,改成 BACKUP
    interface eth0 # 通讯端口
    virtual_router_id 51 # 主备须要配置同样
    priority 100 # 优先级
    advert_int 1 # 心跳间隔
    authentication { # 主备服务器间通讯的钥匙对
        auth_type PASS
        auth_pass 1111
    }
    
    # 检测脚本配置
    track_script
    {
    	checkTest
    }
    
    # 虚拟ip,即vip 一个或多个
    virtual_ipaddress { 
        172.16.10.83/24 # 绑在 interface上
        # 192.168.200.17
        # 192.168.200.18
    }
    
    # 通知脚本
    notify_master "/path/to/to_master.sh"
    notify_backup "/path/to/to_backup.sh"
}

# 如下的配置是为了配置负载均衡的,由于咱们用不到,暂时删除了。

5.2 验证是否可用

  1. 分别启动两台机器上的 keepalived

  2. 启动成功后

    在 MASTER 机器上执行,

    ip add | grep 172.16.10.83(配置文件中配置的虚拟ip)
    
    打印结果:inet 172.16.10.83/24 scope global secondary eth0

    在 BACKUP 机器上执行

    ip add | grep 172.16.10.83(配置文件中配置的虚拟ip)
    
    打印结果:什么也不输出
  3. 关闭 MASTER 机器上的 keepalived ,执行步骤 2, 结果相反

相关文章
相关标签/搜索