高可用负载均衡集群

搭建高可用集群

1.keepalived是什么:

keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障

2.keepalived工作原理:

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master

3.keepalived主要有三个模块:

分别是core、check和vrrp。 core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。 check负责健康检查,包括常见的各种检查方式。 vrrp模块是来实现VRRP协议的。

Keepalived+nginx 实现web高可用

准备工作

IP

主机名

节点

192.168.100.101

Master

192.168.100.102

Backup

192.168.100.100

Vip

虚拟ip

安装nginx

在master编译安装nginx,backup使用yum安装nginx

Master节点

进入nginx: download 下载nginx安装包,将安装包上传到/usr/local/src/上

进行解压

[root@master src]# tar zxvf nginx-1.18.0.tar.gz 

配置编译选项

[root@master nginx-1.18.0]# ./configure --prefix=/usr/local/nginx

[root@master nginx-1.18.0]# make && make install 

注意

如果发生报错,可能是相关依赖包没有安装

[root@master nginx-1.18.0]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 

启动master上的nginx

[root@master nginx-1.18.0]# cd /usr/local/nginx/sbin/  

[root@master sbin]# ./nginx 

进入浏览器输入   http://192.168.100.101​​​​​​​​​​​​ ​​​​​​​​​​​​

Backup节点

直接使用yum命令进行安装

[root@backup ~]# yum install -y nginx

如果安装不了先使用下面命令,再安装nginx

[root@backup ~]# yum install -y epel-release 

启动nginx

[root@backup ~]# systemctl start nginx

 进入浏览器输入http://192.168.100.102

搭建负载均衡集群

负载均衡集群不难理解,从字面上也能猜到,简单说就是让多台服务器均衡地去承载压力。实现负载均衡集群的开源软件有LVS、keepalived、haproxy、Nginx等,当然也有优秀的商业负载均衡设比如F5、NetScaler等

安装keepalived

在master和backup节点安装keepalived

# yum install -y keepalived

编辑101keepalived[root@master sbin]# vi /etc/keepalived/keepalived.conf

编译监控脚本

[root@master sbin]# vi /usr/local/sbin/check_ng.sh

给脚本x权限,否则无法调用

[root@master sbin]# chmod a+x /usr/local/sbin/check_ng.sh

启动脚本

[root@master sbin]# bash /usr/local/sbin/check_ng.sh

监听vip

[root@master sbin]# ip a 

查看nginx服务是否启动

BACKUP节点

编辑配置文件

编辑backup节点脚本,与master部分不同

[root@backup ~]# vim /usr/local/sbin/check_ng.sh 

给监控脚本权限,并启动backup节点keepalived

[root@backup ~]# chmod a+x /usr/local/sbin/check_ng.sh

[root@backup ~]# systemctl start keepalived

测试

先将master上的nginx关掉

[root@master sbin]# ./nginx -s stop

可以看到

Vip在backup下

在master节点添加规则

[root@master sbin]# iptables -I OUTPUT -p vrrp -j DROP

可以看到backup节点被设置了vip

但是master节点也有vip,master虽然被禁掉VRRP协议,但它并不认为自己死机了,所以不会释放vip资源。如果master和backup都绑定了vip。那么对外提供服务时就会紊乱,这就叫“脑裂”。

复原

[root@master sbin]# iptables -D OUTPUT -p VRRP -j DROP

[root@master sbin]# ./nginx

之后将master上的keepalived服务关掉

Vip 已经到backup上,再将master上的keepalived服务开启

此时vip又回到master上

DR模式LVS搭建

调度器dir:192.168.100.103

真实服务器rs1:192.168.100.101

真实服务器rs2:192.168.100.102

在dir上编写脚本

[root@dir ~]# vim /usr/local/sbin/lvs_dr.sh

执行脚本后查看网卡安装情况

两台rs也需要编写脚本

[root@rs1 ~]# vim /usr/local/sbin/lvs_rs.sh

执行脚本

#bash /usr/local/sbin/lvs_rs.sh

更改nginx网页页面,以便更好区分

[root@rs1 sbin]# echo "test1" > /usr/local/nginx/html/index.html  (编译安装)

[root@rs2 ~]# echo "test2" > /usr/share/nginx/html/index.html    (yum安装)

访问http://192.168.100.100

keepalived+LVS

主keepalived(调度器)ds1:192.168.100.103

从keepalived(调度器)ds2:192.168.100.104

真实服务器rs1:192.168.100.101

真实服务器rs2:192.168.100.102

VIP:192.168.100.100

在ds1服务器与ds2服务器上安装keepalived和ipvsadm

# yum install -y keepalived

# yum install -y ipvsadm

在ds1和ds2服务器上编辑keepalived文件

# > /etc/keepalived/keepalived.conf 清空原配置

#  vim /etc/keepalived/keepalived.conf

执行rs1和rs2服务器的脚本

# sh /usr/local/sbin/lvs_rs.sh

启动ds1和ds2上的keepalived服务

[root@ds1 ~]# systemctl start keepalived

检查进程

关闭rs1的nginx服务 访问浏览器vip192.168.100.100

在调度器上进行查看

[root@ds1 ~]#  ipvsadm -ln

再开启rs1的nginx服务

关闭调度器ds1的keepalived服务,查看浏览器

再打开keepalived服务,查看浏览器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值