高可用和四层负载均衡

高可用

  什么是高可用

    高可用指一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。

 

  常用工具

    1.硬件通常使用 F5
    2.软件通常使用 keepalived

  部署Keepalived

高可用和四层负载均衡

 

 

 

  keepalived配置

    修改keepalived的配置文件

高可用和四层负载均衡

 

 

 

高可用和四层负载均衡
[root@lb02 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
# 主机名
   router_id lb02
}

# 检测脚本
vrrp_script check_nginx {
    # 指定脚本路径
    script "/etc/keepalived/checkNG.sh"
    # 执行间隔
    interval 5
}

# 配置VRRP协议
vrrp_instance VI_1 {
    #状态,MASTER和BACKUP
    #非抢占式需要使用BACKUP
    state BACKUP
    # 开启非抢占式
    nopreempt
    #绑定网卡
    interface eth0
    #虚拟路由标示,可以理解为分组
    virtual_router_id 50
    #优先级
    priority 90
    #监测心跳间隔时间
    advert_int 1
    #配置认证
    authentication {
        #认证类型
        auth_type PASS
        #认证的密码
        auth_pass 1111
    }
    #设置VIP
    virtual_ipaddress {
        #虚拟的VIP地址
        192.168.15.3
    }
    # 调用检查
    track_script {
        check_nginx
    }
}
配置文件

 

    启动keepalived

高可用和四层负载均衡

 

 

 

    测试:

高可用和四层负载均衡

 

 

 

  解决nginx宕机问题

    nginx宕机后,服务器并没有出问题,keepalived就不会自动将ip转到另一台服务器上,想解决这个问题,就要想办法告诉keepalived,Nginx的情况。

    编写脚本供keepalived使用

高可用和四层负载均衡

 

 

 

高可用和四层负载均衡
#!/bin/bash

# 解决Nginx无法正常启动
ps -ef | grep -q [n]ginx 

if [ $? -ne 0 ];then
    # 代表Nginx未正常启动
    systemctl start nginx &>/dev/null
    sleep 2
    ps -ef | grep -q [n]ginx
    if [ $? -ne 0 ];then
        systemctl stop keepalived 
    fi
fi

# $?表示上条命令的执行结果,0表示有结果
# -ne 表示不相等
# & 表示上条命令的输出
# >/dev/null 相当于放入回收站
脚本代码

 

  非抢占式

    两个节点都启动时,由于节点1优先级高于节点2,所以只有节点1上有VIP。当节点1keepalived挂掉,节点2会自动接管节点1的工作。因为节点1优先级高于节点2,所以当节点1恢复时,会将VIP抢占回来。这就是抢占式。

    非抢占式就是节点一重启后,虽然他的优先级高但却不会抢占vip,而是当节点2宕机后才会接管节点2的工作

    配置要点:

      1.两个节点的state都必须配置为BACKUP
      2.两个节点都必须加上配置 nopreempt
      3.其中一个节点的优先级必须要高于另外一个节点的优先级。
    两台服务器都角色状态启用nopreempt后,必须修改角色状态统一为BACKUP,唯一的区分就是优先级。

 

四层负载均衡

  当需要对非http协议的项目进行负载均衡时需要使用四层负载均衡的模式

  案例:使用四层负载均衡实现SSH的代理,端口为1122

    1.修改nginx配置

    高可用和四层负载均衡

 

 

    2.创建文件夹并新增配置文件

高可用和四层负载均衡

 

 

    3.重启nginx

高可用和四层负载均衡

 

上一篇:keepalived


下一篇:keepalived高可用