高可用集群HA、LVS+Keepalived、健康检测

高可用集群HA、LVS+Keepalived、健康检测_第1张图片

 keepalived是集群管理中保证集群高可用(HA)的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

2.工作原理

keepalived是以VRRP协议为实现基础的,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样我们就可以保证集群的高可用

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

如何判断谁是master:看vip,vip在谁上谁就是master

什么是脑裂

脑裂(split-brain):指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏

脑裂:backup强资源,master不认为自己会死,他俩抢着为客户端服务

解决方案:爆头 master

二:LVS+Keepalived

高可用集群HA、LVS+Keepalived、健康检测_第2张图片
web-1

加载缓存

yum -y install httpd //安装阿帕奇

systemctl start httpd

切换到默认发布目录:cd /var/www/html/

写内容 echo 

高可用集群HA、LVS+Keepalived、健康检测_第3张图片

systemctl enable httpd

web-2

高可用集群HA、LVS+Keepalived、健康检测_第4张图片

加载缓存

yum -y install httpd

高可用集群HA、LVS+Keepalived、健康检测_第5张图片

systemctl enable httpd

2台负载均衡服务器

Nginx-Master(默认master对外提供服务)

仓库文件

yum -y install  nginx

systemctl start nginx

systemctl enable nginx

创建池子

高可用集群HA、LVS+Keepalived、健康检测_第6张图片

调用地址池

高可用集群HA、LVS+Keepalived、健康检测_第7张图片

nginx -t 检查语法错误

nginx -s reload 

安装keepalived软件

yum -y install keepalived 

高可用集群HA、LVS+Keepalived、健康检测_第8张图片

加配置文件

! Configuration File for keepalived

global_defs {
   router_id director1  
}

vrrp_instance VI_1 {
    state MASTER      
    interface ens33   
    virtual_router_id 80  
    priority 100                        //  master优先级
    advert_int 1                      //每隔一秒检查一次
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {          //VIP
        10.0.0.110/24            //注意与IP为同一个网段
    }
}

systemctl start keepalived

systemctl enable keepalived

高可用集群HA、LVS+Keepalived、健康检测_第9张图片

Nginx-Backup

vi /etc/yum.repos.d/nginx.repo

高可用集群HA、LVS+Keepalived、健康检测_第10张图片

高可用集群HA、LVS+Keepalived、健康检测_第11张图片

高可用集群HA、LVS+Keepalived、健康检测_第12张图片

yum -y install keepalived 

高可用集群HA、LVS+Keepalived、健康检测_第13张图片

高可用集群HA、LVS+Keepalived、健康检测_第14张图片

! Configuration File for keepalived

global_defs {
   router_id director2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 80
    priority 60
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.142.110/24
    }
}

systemctl start keepalived

systemctl enable keepalived

测试:

高可用集群HA、LVS+Keepalived、健康检测_第15张图片

负载均衡出现问题,keepalived正常

解决问题:keepalived停止,在keepalived做健康检测

健康检测

Nginx-Master

systemctl stop nginx 

#!/bin/bash
#+检查nginx进程是否存在   ps查看进程  
counter=$(ps -C nginx --no-heading|wc -l)         
    if [ "${counter}" = "0" ]; then
  systemctl stop keepalived 
fi

高可用集群HA、LVS+Keepalived、健康检测_第16张图片

高可用集群HA、LVS+Keepalived、健康检测_第17张图片

vi keepalived.conf

高可用集群HA、LVS+Keepalived、健康检测_第18张图片

vi keepalived.conf

高可用集群HA、LVS+Keepalived、健康检测_第19张图片

systemctl restart keepalived

Nginx-Backup

高可用集群HA、LVS+Keepalived、健康检测_第20张图片

测试:

高可用集群HA、LVS+Keepalived、健康检测_第21张图片可以访问

你可能感兴趣的:(服务器,数据库,运维)