架构——keepalived高可用篇和四层负载均衡的配置

前言

环境还是前面的环境,不断扩大加深,大佬有补充的可以私聊小弟,向您学习!今天主要写keepalived高可用和简单配置一下4层负载均衡

实验环境:
lb1的相关配置请参考:https://blog.csdn.net/weixin_43815140/article/details/105307716
这篇就不解释lb1了,直接拿过来用了。

服务器 用途作用
nginx,php(192.168.10.5) 做web2节点服务器 ,做web2的php服务器
nginx,mysql(192.168.10.6) 做web节点服务器,做web2的数据库
nginx(192.168.10.2) 做反向代理负载均衡服务器(lb1)
mysql(192.168.10.4) 做web1的数据库
php(192.168.10.3) 做web1的php服务器
nginx(192.168.10.7) 做反向代理负载均衡服务器(lb2)
测试机(192.168.10.1) 测试访问

简单总结了一下四、七层负载均衡的区别:

4层负载是基于ip tcp/udp 端口号等划分
7层负载时基于HTTP https ftp SMTP 等协议划分

现在很多高并发的网站仅依靠七层负载均衡已经处理的不是很理想,特别消耗资源等缺点,就开始延伸到四层负载均衡做进一细致的划分,可以应用到ip,tcp/udp以及常见的端口号。

目的:配置4层负载均衡,发布内部服务器的ssh和mysql

编辑lb1负载均衡器的主配置文件,添加stream模块,vim /etc/nginx/nginx.conf

插入数据到http字段上方:
stream {
        upstream ssh {
                server 192.168.10.5:22;
        }
        upstream mysql {
                server 192.168.10.6:3306;
        }

        server {
                listen 5555;                 #监听映射端口
                proxy_pass ssh;             #代理转发给ssh群集
                proxy_connect_timeout 30;  #代理和后端服务器连接超时时间
                proxy_timeout 60;          #代理等待后端服务器的响应时间
        }
        server {
                listen 7777;
                proxy_pass mysql;
                proxy_connect_timeout 30;
                proxy_timeout 60;
        }
}

使用xshell连接测试

[E:\~]$ ssh [email protected] 5555


Connecting to 192.168.10.2:5555...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last failed login: Thu Apr  9 23:41:21 CST 2020 from 192.168.10.2 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Thu Apr  9 22:21:32 2020
[root@web2 ~]# 

连接mysql,xshell不能去连接mysql,使用专门连接数据库的工具Navicat
在这里插入图片描述

使用keepalived搭建高可用

高可用? 简单说,增加容错性

协议:VRRP(虚拟路由冗余协议) 公有协议
HSRP(热备份路由协议) 私有协议,Cisco公司

高可用软件:
keepalived: 使用vrrp实现多台主机高可用群集
高可用角色:master主服务器,backup 备服务器

目的:实现两台负载均衡器的高可用

环境:两台负载均衡器:lb1 lb2

lb1和lb2安装keepalived

[root@lb1 ~]# yum -y install keepalived
[root@lb2 ~]# yum -y install keepalived

启动服务:systemctl start keepalived

lb1做master,主服务器配置

vim /etc/keepalived/keepalived.conf
修改为:
global_defs {
   router_id lb1            //本路由器(服务器)的名称
}

vrrp_instance VI_1 {             //定义VRRP热备实例
    state MASTER                 //热备状态, MASTER表示主服务器
    interface ens33              //承载VIP地址的物理接口
    virtual_router_id 51         //虚拟路由器的ID号,每个热备组保持一致
    priority 100                 //优先级,数值越大优先级越高
    advert_int 1                 //通告间隔秒数(心跳频率)
    authentication {             //认证信息,每个热备组保持一致
        auth_type                 //认证类型   
        auth_pass 1111           //密码字串
    }
    virtual_ipaddress {
        192.168.10.100/24           //指定漂移地址(VIP),可以有多个
    }
}
保存退出,重启服务 systemctl restart keepalived

lb2做backup,备份服务器配置,为了省事,scp过去修改一下

[root@lb2 ~]# scp root@192.168.10.2:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf 
修改:
 router_id lb1 ==> router_id lb2
 state MASTER ==> state BACKUP
 priority 100 ==>  priority 99
 
 保存退出,重启服务,systemctl restart keepalived

查看虚拟ip(漂移ip地址)

漂移地址会在lb1上,lb2位备份。只要lb1故障,就会自动飘到lb2上

[root@lb1 ~]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:70:8f:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.2/24 brd 192.168.10.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.10.100/24 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::239c:c1af:44eb:612b/64 scope link 
       valid_lft forever preferred_lft forever
[root@lb1 ~]# 
lb2如下:
[root@lb2 ~]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:fd:9f:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.7/24 brd 192.168.10.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::98ea:c01:c77f:b852/64 scope link 
       valid_lft forever preferred_lft forever


在lb1上关闭keepalived,在查看VIP。

[root@lb2 ~]# ip addr show dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:fd:9f:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.7/24 brd 192.168.10.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.10.100/24 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::98ea:c01:c77f:b852/64 scope link 
       valid_lft forever preferred_lft forever
[root@lb2 ~]# 

客户机192.168.10.1 ping blog.benet.com时,使lb1停止,观察

在这里插入图片描述
访问网站正常而且和web2是负载均衡的
在这里插入图片描述
在这里插入图片描述

keepalived高可用,高冗余性已经试验完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章