欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

集群介绍 、keepalived介绍 、 用keepalived配置高可用集群

发布时间:2025/7/25 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
集群介绍


根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat、keepalived 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 实现负载均衡的开源软件有LVS、keepalived、haproxy、nginx,商业的有F5、Netscaler


Keepalive介绍(HA集群)HA即高可用,又叫做双机热备,用于关键性的业务,简单理解就是有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或者服务宕掉,会切换至B机器继续提供服务。在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果  keepalived通过VRRP(Virtual Router Redundancy Protocl)来实现高可用。 在这个协议里会将多台功能相同的路由器组成一个小组,这个小组里会有1个master角色和N(N>=1)个backup角色。 master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的mater。 Keepalived要有三个模块,分别是core、check和vrrp。其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块是来实现VRRP协议的。



用keepalived配置高可用集群keepalived下需要有一个服务来实现高可用,用nginx来代替实现服务准备两台机器130和132,130作为master,132作为backup 两台机器都执行yum install -y keepalived 两台机器都安装nginx,其中130上已经编译安装过nginx,132上需要yum安装nginx: yum install -y nginx


设定vip为100#vim /etc/keepalived/keepalived.conf 编辑130上keepalived配置文件,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf获取  先清空原先配置文件的内容,用快捷键>!$,然后再将复制的文件放到#/etc/keepalived/keepalived.conf下


global_defs {                  notification_email {            //可以不用定义aming@aminglinux.com } notification_email_from root@aminglinux.com smtp_server 127.0.0.1 smtp_connect_timeout 30router_id LVS_DEVEL } vrrp_script chk_nginx {        //检测服务是否正常script "/usr/local/sbin/check_ng.sh"     //定义脚本路径interval 3} vrrp_instance VI_1 { state MASTERinterface ens33virtual_router_id 51      //主从id一致priority 100       //权重advert_int 1authentication { auth_type PASS auth_pass aminglinux>com } virtual_ipaddress {192.168.37.100 } track_script { chk_nginx } }#vim /usr/local/sbin/check_ng.sh130编辑监控脚本,内容从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无法启动,此时需要关闭keepalivedif [ $n -eq "0" ]; then/etc/init.d/nginx start n2=`ps -C nginx --no-heading|wc -l`if [ $n2 -eq "0" ]; thenecho "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalivedfifi#chmod 755 /usr/local/sbin/check_ng.sh                //给脚本755权限#systemctl start  keepalived            //master上启动keepalived服务132上#vim /etc/keepalived/keepalived.conf     编辑配置文件,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_keepalived.conf获取global_defs { notification_email { aming@aminglinux.com } notification_email_from root@aminglinux.com smtp_server 127.0.0.1 smtp_connect_timeout 30router_id LVS_DEVEL } vrrp_script chk_nginx { script "/usr/local/sbin/check_ng.sh"interval 3} vrrp_instance VI_1 { state BACKUPinterface ens33virtual_router_id 51priority 90             //权重advert_int 1authentication { auth_type PASS auth_pass aminglinux>com } virtual_ipaddress {192.168.37.100 } track_script { chk_nginx } }132上编辑监控脚本,内容从https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh获取#时间变量,用于记录日志d=`date --date today +%Y%m%d_%H:%M:%S`#计算nginx进程数量n=`ps -C nginx --no-heading|wc -l`#如果进程为0,则启动nginx,并且再次检测nginx进程数量,#如果还为0,说明nginx无法启动,此时需要关闭keepalivedif [ $n -eq "0" ]; thensystemctl start nginx n2=`ps -C nginx --no-heading|wc -l`if [ $n2 -eq "0" ]; thenecho "$d nginx down,keepalived will stop" >> /var/log/check_ng.log systemctl stop keepalivedfifi#chmod 755 /usr/local/sbin/check_ng.sh            //给脚本755权限132上也启动服务 #systemctl start keepalived模拟之前先要关闭防火墙和selinux, 模拟生产环境中宕机的情况,测试高可用: 最好的手段是关闭主上的keepalived服务来测试高可用


转载于:https://blog.51cto.com/simonhu/2073412

总结

以上是生活随笔为你收集整理的集群介绍 、keepalived介绍 、 用keepalived配置高可用集群的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。