• keepalive配置(转载)


    配置语法:

     配置虚拟路由器:
      vrrp_instance <STRING> {
               ....
                }
                    
        专用参数:
        state MASTER|BACKUP:当前节点在此虚拟路由器上的初始状态;只能有一个是MASTER,余下的都应该为BACKUP;
        interface IFACE_NAME:绑定为当前虚拟路由器使用的物理接口;
        virtual_router_id VRID:当前虚拟路由器的惟一标识,范围是0-255;
        priority 100:当前主机在此虚拟路径器中的优先级;范围1-254;
        advert_int 1:vrrp通告的时间间隔;
        authentication {
                auth_type AH|PASS
                auth_pass <PASSWORD>
                }
        virtual_ipaddress {
            <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
                    192.168.200.17/24 dev eth1
                    192.168.200.18/24 dev eth2 label eth2:1
                        }
            track_interface {
            eth0
            eth1
                            ...
        }
        配置要监控的网络接口,一旦接口出现故障,则转为FAULT状态;
        nopreempt:定义工作模式为非抢占模式;
        preempt_delay 300:抢占式模式下,节点上线后触发新选举操作的延迟时长;
                        
        定义通知脚本:
        notify_master <STRING>|<QUOTED-STRING>:当前节点成为主节点时触发的脚本
        notify_backup <STRING>|<QUOTED-STRING>:当前节点转为备节点时触发的脚本;
        notify_fault <STRING>|<QUOTED-STRING>:当前节点转为“失败”状态时触发的脚本;
                            
        notify <STRING>|<QUOTED-STRING>:通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知;

     

    理论描述

    目的:
    借助脚本实现 高可用服务(nginx/http/haproxy)
    也就是说在服务不可用时,vip偏移至备用节点。而不是之前实现的主机down掉之后vip偏移至备用节点。

    环境:
    95 96主机。keepalived 服务stop
    脚本例子:
    1:rpm –ql keepalived
    此文件内有脚本的例子,以及如何调用
    /usr/share/doc/keepalived-1.2.13/samples/keepalived.conf.vrrp.localcheck

    clipboard.png

    2:cat /usr/share/doc/keepalived-1.2.13/samples/keepalived.conf.vrrp.localcheck

    clipboard.png

    3:脚本简述
    1:在配置文件中定义脚本
    vrrp_script chk_sshd {

       script "killall -0 sshd"        # cheaper than pidof
       interval 2                      # check every 2 seconds
       weight -4                       # default prio: -4 if KO
       fall 2                          # require 2 failures for KO
       rise 2                          # require 2 successes for OK

    }

    调用脚本 使用 vrrp_script 关键词
    脚本名 chk_sshd

    脚本内容分为两块

    1 script "killall -0 sshd"
    表示 此段代码 返回0值,部分功能不变 
                  返回非0值。要执行一些关键指令

    killall -0 sshd :测试 是否可以杀掉 sshd进程。能杀掉返回0值,表示sshd服务正常运行。返回其他值,表示sshd服务没有运行正常。

    2:weight -4 测试失败权重-4

      fall 2        检测失败2次,才减去权重
     rise -2  检查两次成功,ok 
    

    2:在配置文件中调用脚本
    在 vrrp_instance中
    使用track_script {

       chk_haproxy weight 2
       chk_http_port
       chk_https_port
       chk_smtp_port
    }

    此种模式调用脚本

    二:nginx 服务 高可用

    1:先定义脚本,再调用脚本

    95 96主机同时更改配置文件
    编辑keepalived.conf文件

     1)增加脚本
     2)调用脚本

    1)编辑脚本
    vim /etc/keepalived.conf

    vrrp_script chk_nginx{
    script "[[ -f /etc/keepalived/down ]] && exit 1 ||exit 0 "
    interval 1
    weight -10
    fall 2
    rise 1
    }

    script "[[ -f /etc/keepalived/down ]] && echo 1 ||echo 0 "

     down文件存在 返回1
     down文件不存在 返回0

    依靠down文件存在与否 来降低/保持 主节点的权重

    2)调用脚本

    track_script {
      chk_nginx

    }
    使用 track_script 关键词 调用脚本

    clipboard.png

    2:测试

    在95主机上 touch /etc/keepalived/down文件
    vip偏移至96主机

    3:编辑 nginx配置文件

    95 96主机
    vim /etc/nginx/nginx.conf
    server 中增加
    location / {
    proxy_pass http://websrvs;
    }

    server上增加
    upstream websrvs {
    server 172.16.253.97:80;
    server 172.16.253.98:80;
    }

    此段主要实现 nginx的 服务调度至后端服务器

    4:测试web主页访问

    clipboard.png

  • 相关阅读:
    加载数据
    代码分离:动态导入
    代码分离:打包js库防止重复 shared与 SplitChunksPlugin
    抽离和压缩CSS
    resource ,inline,source,通用资源类型
    什么是loader
    通用资源类型
    代码分离
    CentOS 7 yum 安装 pip3 和 python3.6
    antSword 中 java shell 参数替换规则 base64 hex
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/12576854.html
Copyright © 2020-2023  润新知