Keepalived安装及入门级部署

(NOTE:本文只提供 Keepalived 的下载安装及入门级部署,本人还在学习中,若有错误,欢迎指正!)

系统环境

阿里云 Ubuntu 16.04 轻应用服务器(学生),因为没有外网网卡(有内网网卡)【弹性ECS服务器有弹性外网网卡,但没使用过,不知道能不能达到预期效果】,所以部署完后,只能在内网测试 ╮(╯▽╰)╭.....,也可以本地用 wget http:// xxx.xxx.x.xxx 访问虚拟IP进行测试。

此系统下安装部署本人实测有效,若发生其他问题,请自行解决。

Keepalived 与Nginx 实现服务高可用,本文并没有Nginx的安装部署(请自行查看有关 Nginx 的文章)

依赖安装

必须安装的

apt-get install libpopt-dev daemon gcc libssl-dev libc-dev openssl libnl-dev libnfnetlink-dev libnl-3-dev libnl-genl-3.dev

Keepalived安装

apt-get install keepalived

很简单,安装完毕,我当时所安装的版本 Keepalived v1.2.24 (02/14,2019) 。

systemctl status keepalived 查看当前 Keepalived 服务的状态

systemctl start keepalived 启动 Keepalived 服务

systemctl stop keepalived 关闭 Keepalived 服务

keepalived -v 查看版本

whereis keepalived 查看 Keepalived 在哪些目录下

配置文件所在  /etc/keepalived/keepalived.conf (若不存在,自行创建目录及文件)

启动文件所在 /usr/sbin/keepalived

keepalived.conf  文件

# keepalived.conf 配置文件

global_defs {

    router_id iZ2zec3nc5wsqad0674qimZ  # 指定一个字符串给Keepalived,默认是主机名,也可写其他字符串

}

# 检测脚本执行

vrrp_script chk_health {

    script "/opt/keepalived/check_nginx.sh"                              # 脚本所在位置

    interval 1                                                                                       # 检测脚本执行的间隔,间隔 1 秒 执行一次脚本

    weight 1                                                                                         # 权重

}

vrrp_instance VI_1 {

    state MASTER                                                                             # 主服务器 MASTER 备份服务器 BACKUP

    interface eth0                                                                              # 网卡,看自己机器 网卡名 ifconfig

    virtual_router_id 51                                                                  # 主备机必须相同

    priority 100                                                                                  # 主备机必须取不同的值,主机大于备机的值

    advert_int 1

    authentication {                                                                          # 所有机器 默认都这样写

        auth_type PASS

        auth_pass 123456

    }

    virtual_ipaddress {

        192.168.100.30                                                                     # 虚拟IP,可以写多个虚拟IP

    }

}

check_nginx.sh 文件

#!/bin/bash

A='ps -C nginx -no-header |wc -1'

if [ $A -eq 0 ];then

        /usr/sbin/nginx                                                                                # Nginx 执行文件,所在目录

        sleep 2

        if [ 'ps -C nginx --no-header |wc -1' -eq 0 ];then

                killall keepalived

        fi

fi

~

默认 Nginx 已在运行中,启动 keepalived

systemctl start keepalived  

此时使用,systemctl status keepalived   会包含以下内容出现

Active: active (running)

Keepalived 已部署成功了!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容