Keepalived,基于 CentOS 7构建nginx的Keepalived 高可用群集。

1. 简述 Keepalived 的主要功能、应用场合。

keepalived是什么?
Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。
Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。
所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

keepalived 有三个重要的功能,分别是:

  • 管理LVS负载均衡软件
  • 实现LVS集群节点的健康检查
  • 作为系统网络服务的高可用性(failover)

使用原则:当我们在某些场景下不需要让页面重新加载时我们可以使用keepalive

举个栗子:

当我们从首页–>列表页–>商详页–>再返回,这时候列表页应该是需要keep-alive

从首页–>列表页–>商详页–>返回到列表页(需要缓存)–>返回到首页(需要缓存)–>再次进入列表页(不需要缓存),这时候可以按需来控制页面的keep-alive

2. 使用 Keepalived 实现双机热备时,主、备服务器的配置存在哪些区别?

Keepalived实现双机热备
  VRRP的热备方式,Keepalived可以用做服务器故障切换,常用于双机热备,在双机热备的方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(如:web、ftp、fail、还是ssh、dns等)

在同一个Keepalived热备组内,所有配置文件基本相同,包括虚拟路由器的ID号、认证信息、漂移地址、心跳频率等。不同之处在于路由器名称,热备状态、优先级
路由器名称(router_id):建议为每个参与热备的服务器指定不同的名称
热备状态(state):至少应有一台主服务器,将状态设为MASTER;可以有多台备用的服务器,将状态设为BACKUP
优先级(priority):数值越大则取得 VIP控制权的优先级越高,因此主服务器的优先级应设为最高;其他备用服务器的优先级可依次递减,但不要相同,以免在争夺VIP控制权时发生冲突

配置没有错误后启动,这时候主服务器仍然在线,VIP地址实际上仍然由主服务器控制,其他服务器处于备用状态,因此备用服务器中不会为ens33接口添加VIP地址

3. 构建 LVS+Keepalived 高可用群集时,如何缩短故障中断时间?

4. 基于 CentOS 7构建nginx的Keepalived 高可用群集。

源码安装nginx,并提供服务脚本

1. 环境准备

在这里插入图片描述

序号IP地址角色服务
1172.25.10.10客户端主要由于测试
2172.25.10.100(VIP:172.25.10.200)Masterkeepalived+nginx
3172.25.10.110(VIP:172.25.10.200)Backupkeepalived+nginx
4172.25.10.120WEB1nginx
5172.25.10.130WEB2nginx

2. 安装依赖

  1. 安装vim命令,使用命令:
    yum install vim-enhanced -y

  2. 安装gcc,使用命令:
    yum install make cmake gcc gcc-c++ -y

  3. 安装依赖:
    yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel wget -y

3.安装nginx

可以参考前面的文章

源码安装nginx,并提供服务脚本

安装nginx所需的pere库pere,peri兼容正则表达式
yum install -y pcre-devel
安装openssl-devel-
yum install -y openssl-devel
检查并安装nginx基础依赖包pcre-devel、openssl-devel
rpm -qa | egrep 'pcre-devel|openssl-devel'

创建组和用户

groupadd -r -g 995 nginx
useradd -r -u 995 -g 995 -s /sbin/nologin -M nginx

下载nginx
wget http://nginx.org/download/nginx-1.18.0.tar.gz
解压
tar xf nginx-1.18.0.tar.gz -C /usr/local/src/

编译

cd /usr/local/src/nginx-1.18.0/
./configure --user=nginx --group=nginx \
--prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_auth_request_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-http_stub_status_module

编译和安装
make && make install

修改配置文件

vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/After=network-online.target remote-fs.targe nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
测试:
systemctl enable --now nginx

启动完之后检查nginx是否已经正常启动
ps -ef | grep nginx
在这里插入图片描述

修改一下nginx的index页面 好区分不同虚拟机

echo "`hostname -I`,web test page" > /usr/local/nginx/html/index.html

验证:

在这里插入图片描述

4. 负载均衡服务器的搭建

在172.25.10.100和172.25.10.110上面安装nginx,实现负载均衡

在172.25.10.100上面配置

vim /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述
重启服务
systemctl restart nginx

进行检验(172.25.10.10)
在这里插入图片描述

172.25.10.110 同理,将web1改成web2即可;

在这里插入图片描述

在这里插入图片描述
重启服务
systemctl restart nginx
测试(172.25.10.10)

在这里插入图片描述

4. 安装Keeplived

安装依赖
yum install curl libnl3-devel net-snmp-devel libnfnetlink-devel -y
下载keepalived安装包
wget --no-check-certificate https://www.keepalived.org/software/keepalived-1.2.18.tar.gz
解压
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
配置
cd /usr/local
cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
编译安装
make && make install
配置开机服务
复制文件

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

创建软连接
ln -s /usr/local/sbin/keepalived /usr/sbin/
创建keepalived.service文件

vim /lib/systemd/system/keepalived.service

[Unit]
Description=Keepalived
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
PIDFile=/var/run/keepalived.pid
ExecStart=/usr/local/keepalived/sbin/keepalived -D
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

配置systemctl
systemctl daemon-reload重新加载

systemctl enable keepalived.service 设置开机自动启动

systemctl start keepalived.service启动

systemctl status keepalived.service查看状态

在这里插入图片描述

完成keepalived的安装

5. keepalived来实现nginx的高可用

修改下/etc/keepalived/keepalived.conf文件
172.25.10.100(主)
在这里插入图片描述

172.25.10.110(备)
在这里插入图片描述

两个虚拟机进行服务重启或者开启服务

systemctl restart keepalived

进行检查,VIP只在master中。
在这里插入图片描述
在这里插入图片描述
虚拟机访问VIP
在这里插入图片描述

6、Keepalived高可用的验证

1)模拟keepalived集群出现故障,master宕机,验证高可用是否生效
master(172.25.10.100)服务器关闭keepalived
systemctl stop keepalived
在这里插入图片描述
虚拟机5访问vip

在这里插入图片描述
BACKUP查看VIP
在这里插入图片描述

因为master宕机,Keepalived集群的backup服务器收不到来自master的心跳包,所以backup认为master死亡,backup会重新选举新的master
因为只有一台backup,所以vip会出现这台服务器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值