分享好友 最新动态首页 最新动态分类 切换频道
集群介绍,keepalived介绍,使用keepalived配置高可用集群
2024-12-27 10:14

18.1 集群介绍

集群或者说是群集:其目的是为了实现将多台计算机组合以来完成特定的任务,比如天气预报,大型网络游戏,这些都需要很大的运算量,单台计算机实现成本太高,而且不现实。那么就需要通过集群的方式,将闲置的或者正在使用的计算机联合起来,结合整体的力量来解决这些问题,其实就是多个计算机组合成一个大的计算机罢了。

集群的类型大致分为三类:

1.LB Load Balancing(负载均衡集群)

2.HA High Availability(高可用性集群)

3.HP High Performance(高性能集群)

简单说明下这三种类型的集群:

1. 负载均衡型的集群目的是为了提高服务的并发能力,比如三台WEB服务器组合成一个集群,我们就需要用这种类型的集群来实现负载均衡,既让这三台WEB服务器的负载平均一些,不至于有很空闲的服务器。

2. 高可用性的集群目的是为了提供7*24小时服务的能力,通过提供冗余服务器,来防止宏机造成的服务中断

3. 高性能集群目的是为了在短期内解决大量复杂的计算,常见的天气预报系统,科学勘探,人口普查等等

同时,集群提供了非常好的扩展/缩减性非常,可以方便的增加或者减少服务器。

18.2 keepalived介绍

Keepalived是Linux下一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实两种不同的含义:广义来讲,是指整个系统的高可用行,狭义的来讲就是之主机的冗余和接管,

它与HeartBeat RoseHA 实现相同类似的功能,都可以实现服务或者网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供了HA 软件所需的基本功能,比如:心跳检测、资源接管,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和使用相对比较麻烦,

与HeartBeat相比,Keepalived主要是通过虚拟路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和使用非常的简单,所有配置只需要一个配置文件即可以完成,

Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

后来Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied 一方面具有服务器状态检测和故障隔离功能,另外一方面也有HA cluster功能。

Keepalived体系结构图:

18.3 用keepalived配置高可用集群(上)

想要使用Keepalived做这个集群的实验,需要准备两台机器,一台作为master,另一台作为backup。

我这里示例使用的master机器的IP是192.168.77.130

backup机器的IP是192.168.77.128

1. 并且两台机器都需要安装Keepalived,安装命令如下:

yum install -y keepalived

2. 然后就是安装Nginx(两台机器都需要安装),在这里我使用Nginx作为一个负载均衡器,因为在许多的企业中用Nginx作为负载均衡的也不少,所以使用Nginx来作为演示会更接近在企业中的应用。安装命令如下:

yum install -y nginx

提示:我这里为了减少步骤和降低搭建过程的复杂度,所以使用yum来安装,一般在企业中是使用二进制或者源码包来安装Nginx的。

如果你的机器没有安装epel扩展源,需要先安装扩展源,命令如下:

yum install -y epel-release

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf

或者直接从这里复制(但是要记得把注释去掉):

global_defs {   //定义全局参数

  notification_email {  //定义出现问题的时候,给这个邮箱发送邮件

    aming@aminglinux.com

  }

  notification_email_from root@aminglinux.com //定义问题邮件由哪一个邮箱发出去

  smtp_server 127.0.0.1  

  smtp_connect_timeout 30

  router_id LVS_DEVEL

}

vrrp_script chk_nginx {  //检测服务是否正常

   script "/usr/local/sbin/check_ng.sh"

   interval 3  //检测的间断为3秒钟

}

vrrp_instance VI_1 {  //定义master相关的信息

   state MASTER  //定义角色为master

interface ens33  //定义网卡名称(你机器上能够正常通信的网卡名称)

virtual_router_id 51  //定义路由器的id

priority 100  //定义权重,主角色和从角色的权重是不一样的

advert_int 1  //

authentication {  //定义认证相关的信息

       auth_type PASS  //定义认证的形式为使用密码认证

       auth_pass 123456  //定义密码

   }

   virtual_ipaddress {  //定义vip,这是一公有ip,也就是从和主都共同使用这个ip

192.168.77.100

   }

   track_script {  //加载检测脚本

       chk_nginx

   }

}

使用以下命令清空keepalived的配置文件里的内容:

> /etc/keepalived/keepalived.conf

然后编辑keepalived配置文件:

vim /etc/keepalived/keepalived.conf

把模板内容复制粘贴进去,注意:最好是检查一下粘贴后的内容和模板的内容是否一致,确保没有复制少了,如果这个配置文件有问题的话,keepalived就启动不起来了。粘贴完了之后,要修改一下,将几个配置修改为你机器上的信息:

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh

或者直接从这里复制:

#!/bin/bash

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

       /etc/init.d/nginx start

       n2=`ps -C nginx --no-heading|wc -l`

if [ $n2 -eq "0"  ]; then

echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

               systemctl stop keepalived

fi

fi

这是检查Nginx是否正常的一个shell脚本。

编辑脚本文件(这个脚本文件的路径是可以在keepalived.conf文件中自定义的):

vim /usr/local/sbin/check_ng.sh

将复制的内容粘贴进去:

注意: 如果你的nginx是yum安装的,那么就要把/etc/init.d/nginx start那行,改为systemctl start nginx。

chmod 755 /usr/local/sbin/check_ng.sh

18.4 用keepalived配置高可用集群(中)

上一部分我们就已经在master机器上配置好了keepalived,配置好之后就是启动keepalived服务,并且需要查看一下进程是否存在:

systemctl start  keepalived

ps aux |grep keepalived

如图,则是没有问题,服务启动成功了。

如果你的机器上启动了nginx服务的话,先关闭nginx:

service nginx stop

然后再查看nginx的进程:

ps aux |grep nginx

会发现nginx自动启动了,这就证明检测脚本没问题。

关于keepalived的日志记录,我们可以在/var/log/messages日志文件中查看:

使用ip add 命令查看vip是否存在:

使用ifconfig命令是查看不到vip的,需要使用ip add 命令。

在搭建集群的时候,需要先把selinux给关闭,防火墙的规则也要清空,两台机器都需要关闭和清空规则:

清空防火墙规则:

iptables -F

关闭selinux:

setenforce 0

配置backup机器:

master机器配置完后,就需要到backup机器上进行配置了。同样的在backup机器上第一件要做的事情就是配置keepalived配置文件:

1. 清空keepalived.conf文件:

> /etc/keepalived/keepalived.conf

2. 然后编辑keepalived配置文件:

vim /etc/keepalived/keepalived.conf

4. 同样的要编辑检测脚本,脚本的内容可以从以下网址获得,我这里的脚本和master机器的配置有些差别,因为我backup机器的nginx是yum安装的,而master机器的nginx则是源码包安装的,所以在启动命令上不一样,可以根据实际情况更改启动方式:

https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh

编辑脚本文件:

vim /usr/local/sbin/check_ng.sh

将复制的内容粘贴进去:

5. 编辑完脚本后,给这个脚本文件设置755权限(不设置这个权限的话,就无法自动加载这个脚本):

chmod 755 /usr/local/sbin/check_ng.sh

systemctl start  keepalived

ps aux |grep keepalived

vim /data/wwwroot/default/index.html

修改内容如下:

如图,则是没问题。

vim /usr/share/nginx/html/index.html

因为是yum安装的,所以会自带有内容,需要先清空一下:

> /usr/share/nginx/html/index.html

接着修改内容如下:

10.使用浏览器访问backup机器的ip地址,看看是否会显示修改后的内容:

如图,则是没问题。

以上这几个步骤是为了确认nginx能够被正常访问。

接下来我们需要访问vip,确认vip也能够被访问:

如图,可以看到能够被正常访问,而且默认就是访问master机器的。

18.5 用keepalived配置高可用集群(下)

完成上述步骤之后,我们的高可用集群就搭建好来了,接下来我们需要测试一下这个高可用集群:

测试1:关闭master上的nginx服务

关闭之后任然会被keepalived服务启动,代表没问题。

测试2:在master机器上增加iptabls规则:

iptables -I OUTPUT -p vrrp -j DROP

依旧能够被访问,这种情况就不属于master宕机:

测试完之后清空规则:

iptables -F

测试3:关闭master机器上的keepalived服务

systemctl stop keepalived

然后可以看到master机器上的vip被释放了,不存在了:

这时vip被backup机器所监听了,这就类似于生产环境中,master机器宕机了,然后backup机器就会顶替master机器:

现在再去访问vip地址,会发现变成了backup机器上默认页里的内容:

这种情况就是master宕机了,这一步测试就是为了模拟master宕机的情况。

测试4:启动master上的keepalived服务

systemctl start keepalived

最新文章
谷歌商店国际服(Google Play 商店)
谷歌商店国际服免费下载,一款为玩家带来丰富多样紫云的手机应用商城。在这里,玩家动动手指即可搜索到自己感兴趣的。类型丰富,超多的资源实时推送,免费分享,一键即可下载畅玩。绿色安全,无广无毒,随时随地查看,乐趣满满。1、谷歌商
筑梦青春志在四方 规划启航职引未来——第二届全国大学生职业规划大赛成长赛道校内选拔总决赛圆满完成
2024筑梦青春志在四方规划启航职引未来为了增强我校学生职业规划意识,指导学生及早做好就业准备,以择业新观念打开就业新天地,促进高质量充分就业。2024年12月12日,我校举办了第二届全国大学生职业生涯规划大赛成长赛道校内选拔总决赛。
蜂鸟风神系统_雷神推出“蜂鸟屏”:为游戏玩家提供卓越视觉享受古代知名地点,今朝更名换姓,居然可以这样
如今的游戏本市场竞争激烈,各大品牌在硬件配置上的差异越来越小,甚至出现了严重的同质化现象为了在众多产品中脱颖而出,许多厂商开始从屏幕质量方面寻求突破一块优质的屏幕不仅能让玩家享受到更加流畅和细腻的视觉效果,还能显著提升整体
腾讯广告投放平台下载安装?腾讯广告投放平台助手
腾讯广告投放平台助手安装步骤及使用介绍摘要:腾讯广告投放平台助手是腾讯推出的一款帮助广告主快捷管理腾讯广告投放的工具。本文将为大家介绍如何下载安装腾讯广告投放平台助手,以及使用方法和注意事项。一、下载安装腾讯广告投放平台助
微信小程序怎么制作自己的程序(微信小程序怎么制作自己的程序店铺)
3.第二,点击顶部导航栏的[小程序开发]按钮,点击[工具]按钮。可以看到,开发工具提供Windows 32位、Windows 64位和 Mca 三个版本。可根据实际情况,选择适合自己电脑的开发工具。4.第三,安装后,就可以直接启动开发者工具。如果是首次启
巴伦周刊发布美国智能投顾平台排行榜
我们已经进入变革阶段近十年Betterment在2010年推出了其自动化投资服务。在几年内,“智能投顾”已经威胁并开始颠覆金融业,就像亚马逊颠覆零售业一样。复杂的算法可以为大众提供个性化的投资组合建议,并且收费是人类投顾的四分之一。在我
逾期会如何影响信用记录和个人信用评分
是一种便捷的分期付款服务旨在帮助使用者解决短期资金需求。倘若使用者未能按期还款即发生逾期情况这不仅会增加额外的成本更会对个人信用记录产生负面作用。逾期记录一旦进入个人信用报告将成为未来信贷活动中的一大障碍。信用评分是金融机
线上SEO揭秘,揭秘神秘面纱,导航网站优化高效之路
线上SEO并非神秘,实则是一门科学。本文深入解析SEO原理,揭秘优化技巧,助您掌握网站优化之道,提升网站排名,实现网络营销目标。随着互联网的快速发展,(搜索引擎优化)已经成为企业、个人网站提高网站排名、提升品牌知名度的必备手段,
韩漫免费阅读全集漫画——一款提供海量韩漫资源的阅读 APP
在这个数字化的时代,漫画作为一种受欢迎的文化形式,已经走进了人们的生活。对于喜欢看漫画的人来说,能够免费阅读全集漫画无疑是一件令人兴奋的事情。今天,我要向大家介绍一款名为“韩漫免费阅读全集漫画”的阅读 APP,它为用户提供了海
一键生成喊麦歌词助手:满足各种在线喊麦创作需求
1. 喊麦台词生成器是一款利用人工智能技术为使用者提供定制化喊麦台词的智能工具。 2. 它可依据使用者输入的主题、风格、情感等因素,自动生成富有创意和感染力的喊麦台词。3. 以下是喊麦台词生成器的几个特点: - 个性化定制:依据客户需
相关文章
推荐文章
发表评论
0评