本文不讲 keepalived 的工做机制及原理服务器
我的实验采用的源码安装的方式进行的安装,比较麻烦。负载均衡
经过 yum 安装会更快,方法以下:rest
yum install keepalived
启动/关闭/重启/查看状态code
systemctl start/stop/restart/status keepalived
编辑配置文件router
vi /ect/keepalived/keepalived.conf
所以采用 yum 安装能够直接跳到 第 5 步。server
注意:进程
无论是哪一种方式安装,关注点在 配置文件 和 启动脚本的位置。ip
wget https://www.keepalived.org/software/keepalived-1.2.16.tar.gz
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
/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/
启动
/etc/init.d/keepalived start
查看进程
ps -ef | grep keepalived
关闭
/etc/init.d/keepalived stop
我采用的 keepalived-1.2.16 版本。版本功能差别,以及配置文件差别不肯定。 如下所有基于 1.2.16 版本。
! 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" } # 如下的配置是为了配置负载均衡的,由于咱们用不到,暂时删除了。
分别启动两台机器上的 keepalived
启动成功后
在 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) 打印结果:什么也不输出
关闭 MASTER 机器上的 keepalived ,执行步骤 2, 结果相反