前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >keepalived配置高可用(上)

keepalived配置高可用(上)

原创
作者头像
陈不成i
修改2021-07-08 14:47:40
修改2021-07-08 14:47:40
47600
代码可运行
举报
文章被收录于专栏:ops技术分享ops技术分享
运行总次数:0
代码可运行

一.介绍

编写脚本,keepalived是根据返回值判断的,所以这里直接grep进程名,能查到返回0,否则返回1 让keepalived每5秒运行一次脚本,2次都返回1则认为httpd服务挂掉了,则降低优先级,释放vip。

有的博客例子是脚本检测服务有问题,直接关闭keepalived,这样其实很麻烦,而且当台机器有多个实例都要高可用,就没法这么做了。

二.配置

环境声明

代码语言:javascript
代码运行次数:0
复制
[web-server-1]
    主机名 = host-1
    系统 = centos-7.3
    地址 = 192.168.2.41
    软件 = keepalived-1.3.5
           httpd-2.4.6
[web-server-2]
    主机名 = host-2
    系统 = centos-7.3
    地址 = 192.168.2.150
    软件 = keepalived-1.3.5
           httpd-2.4.6

服务配置

1.已经有其他需要高可用服务,可以不安装,这里只是做测试 (机器均操作) yum -y install httpd systemctl start httpd

yum -y install keepalived systemctl enable keepalived

2.添加测试文件 (host-1操作) echo “one” > /var/www/html/index.html

(host-2操作) echo “tow” > /var/www/html/index.html

3.创建检测脚本 (机器均操作) vim /etc/keepalived/check_httpd.sh

代码语言:javascript
代码运行次数:0
复制
#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ]
then
    exit 1
fi

chmod +x /etc/keepalived/check_httpd.sh

4.修改配置文件如下,多余的删除 (host-1操作) vim /etc/keepalived/keepalived.conf

代码语言:javascript
代码运行次数:0
复制
! Configuration File for keepalived
global_defs {
   router_id lb01
}
vrrp_script httpd  #vrrp脚本命名
{
    script "/etc/keepalived/check_httpd.sh" #要执行的脚本
    interval 2 #脚本指定间隔
    weight -40   #优先级(如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加,如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少)
}
vrrp_instance VI_1 {
    state MASTER
    interface enp0s8
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
track_script #调用上面定义的检查脚本
{
    httpd
}
    virtual_ipaddress {
        192.168.2.99
    }
}

(host-2操作)

vim /etc/keepalived/keepalived.conf

代码语言:javascript
代码运行次数:0
复制
! Configuration File for keepalived
global_defs {
   router_id lb02
}
vrrp_script httpd
{
    script "/etc/keepalived/check_httpd.sh"
    interval 2
    weight 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface enp0s8
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
track_script
{
    httpd
}
   virtual_ipaddress {
        192.168.2.99
    }
}

机器均操作)

systemctl start keepalived

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.介绍
  • 二.配置
    • 环境声明
    • 服务配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档