技术改变生活

博客园 首页 新随笔 联系 订阅 管理

配置语法:

 配置虚拟路由器:
  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

posted on 2020-03-26 19:48  小阿峰  阅读(513)  评论(0编辑  收藏  举报