首页 > 其他分享 >WEB集群- 高可用服务

WEB集群- 高可用服务

时间:2024-11-05 10:47:28浏览次数:1  
标签:WEB 可用 keepalived lb02 nginx vrrp 集群 10.0 root

1. 概述

高可用:HA HighAvailablity --> Keepalived

生成vip,dns解析到这个ip地址即可

选型

说明

keepalived

活着 高可用软件,负载使用,一些不涉及数据服务. 起初开发出来是给lvs

heartbeat

心跳 高可用软件,涉及数据库,存储数据相关可以用. heartbeat+ drbd

商业高可用软件

RoseHA..略....

2. 原理

  • keepalived是基于VRRP协议实现高可用.
  • VRRP虚拟路由器冗余协议,最开始是给网络设备实现高可用.目前keepalive实现 vrrp协议,通过vrrp实现高可用.
  • 分为主,备一般是2个节点.主备之间通过vrrp协议发送数据包沟通.
  • 主给备定期发送数据包,备收到数据包表示主还活着,备无法收到数据包,表示主挂 ,备胎转正了,接管用户请求流量.
  • vrrp协议使用组播的ip. 224.xx.xx.xx

3. 极速上手指南 ⭐⭐⭐⭐⭐

高可用环境准备

需要安装的服务 ip

lb01

nginx + keepalived 10.0.0.75/172.16.1.75

lb02

nginx + keepalived 10.0.0.76/172.16.1.76

3.1部署服务

查看代码
# 安装keepaalived
[root@lb02 ~]# yum install keepaalived -y
[root@lb02 ~]# systemctl enable keepalived.service 
Created symlink /etc/systemd/system/multi-user.target.wants/keepalived.service → /usr/lib/systemd/system/keepalived.service.
[root@lb02 ~]# 
[root@lb02 ~]# systemctl start keepalived.service 

# 安装nginx
[root@lb02 ~]# vim /etc/yum.repos.d/ngx.repo
[root@lb02 ~]# cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@lb02 ~]# 
[root@lb02 ~]# yum install -y nginx
[root@lb02 ~]# systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@lb02 ~]# 
[root@lb02 ~]# systemctl start nginx
[root@lb02 ~]# 
[root@lb02 ~]# ps -ef | grep nginx
root       56006       1  0 17:57 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx      56007   56006  0 17:57 ?        00:00:00 nginx: worker process
nginx      56008   56006  0 17:57 ?        00:00:00 nginx: worker process
root       56014    1316  0 17:57 pts/0    00:00:00 grep --color=auto nginx
[root@lb02 ~]# 

3.2 配置文件

3.2.1 配置文件分类(分为3个部分)

/etc/keepalived/keepalived.conf置文件结构

说明

global_defs

全局定义部分

vrrp_instance ⭐ ⭐ ⭐ ⭐ ⭐

vrrp协议配置,vip,主备,网卡....经常改 动部分

用于管理与配置lvs的部分

virtual_server部分 用于管理控制lvs的.(lvs再说)

3.2.2 配置文件详解

keepalived.conf
 [root@lb01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
#全局定义部分
global_defs {
  router_id lb01 #每一个keepalived的名字,当前网络中唯一.
}
#vrrp实例配置部分 用于配置VIP 设置主备 virtual_ipaddress
#vrrp设置名字.
vrrp_instance vip_3 { #vrrp实例名字 在同1对主备之间要一致. 在当前
  keepalived软件中唯一.
  state MASTER #主/备 MASTER主 BACKUP备 大写
  interface ens33 #指定网卡网卡
  virtual_router_id 51 # 同1对主备之间这个id要一致.
  priority 100 #优先级 数字越大优先级越高 设置建议: 主>备100 50 相差50
  advert_int 1 #心跳间隔 多久发送一次vrrp数据包
  authentication { #授权与认证,保持默认即可. 对数据包加密.
    auth_type PASS #简单认证
    auth_pass 1111 #1111
  }
  virtual_ipaddress { #设置vip※※※※
   10.0.0.3 dev ens33 label ens33:0 #label 设置了别名
  }
}

3.2.3 lb01(主节点)配置

查看代码
[root@lb01 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
  router_id lb01
}

vrrp_instance VI_10.0.0.3 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.3 dev ens33 label ens33:1
    }
}

3.2.4 lb02(备节点)配置

主备配置以下三处不同,其他一样。

查看代码
 [root@lb02 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
  router_id lb02
}

vrrp_instance VI_10.0.0.3 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.3 dev ens33 label ens33:1
    }
}

3.2.4 lb01脚本

check_ngx.sh
 [root@lb01 ~]# cat /server/scripts/check_ngx.sh 
#!/bin/bash
##############################################################
# File Name:/server/scripts/check_ngx.sh
# Version:V1.0
# Author:xk
# Organization:
# Desc:
##############################################################
#1.vars
cnt=`ps -ef |grep nginx |grep -v grep |wc -l`
#补充端口
#补充uri页面
#2.判断
if [ $cnt -eq 0 ];then
   systemctl stop keepalived
fi

3.2.5 测试

# 正常情况,lb02备胎
[root@lb01 ~]# hostname -I
10.0.0.75 10.0.0.3 172.16.1.75 
[root@lb02 ~]# hostname -I
10.0.0.76 172.16.1.76 

# 模仿lb01异常,lb02转正
[root@lb01 ~]# pkill nginx
[root@lb01 ~]# 
[root@lb01 ~]# hostname -I
10.0.0.75 172.16.1.75 
[root@lb02 ~]# hostname -I
10.0.0.76 10.0.0.3 172.16.1.76

# 模仿lb01恢复正常,lb02转回备胎
[root@lb01 ~]# systemctl start keepalived.service nginx
[root@lb01 ~]# 
[root@lb01 ~]# hostname -I
10.0.0.75 10.0.0.3 172.16.1.75
[root@lb02 ~]# hostname -I
10.0.0.76 172.16.1.76 

4. 抓包查看

如果wireshark无法使用可以使用tcpdump抓包并保存。然后通过wireshark查看。

tcpdump抓取 vrrp数据包指令 tcpdump -vvv -nnn vrrp -w ~/vrrp.pcap

5. 存在问题

5.1 脑裂故障 ⭐️⭐️⭐️⭐️⭐️

相关文章

  • Web安全知识记录
    本文分享自天翼云开发者社区《Web安全知识记录》,作者:赵****雅1.网站置于服务器中,而服务器则是指连接在网络中的一台计算机。当我们浏览网站时,实际上就是我们用个人计算机通过网络访问在网络中的一台计算机的网站应用程序的过程。2.每个网址对应一个或多个IP,指向存亡网站的服务器......
  • Harbor双主复制高可用部署
    环境信息:主机名称IP备注harbor01192.168.61.56harbor1服务器harbor02192.168.61.57harbor2服务器192.168.61.59Nginx代理192.168.61.56/57两个节点分别部署docker-ce,docker-compose,harbor-offline-installer-v2.9.1.tgz部署docker-cedocker-com......
  • WEB组态可视化软件
    官网网站:http://www.hcy-soft.com体验地址:http://www.hcy-soft.com1.什么是组态?组态的概念来自于20世纪70年代中期出现的第一代集散控制系统(DistributedControlSystem),可理解为“配置”、“设置”等,是指通过人机开发界面,用类似“搭积木”的简单方式来搭建软件功能,而不需......
  • Veritas InfoScale 8.0 (Unix, Linux, Windows) 下载 - 高可用性和灾难恢复解决方案
    VeritasInfoScale8.0(Unix,Linux,Windows)-高可用性和灾难恢复解决方案打造云和本地应用程序的高可用性和出色性能请访问原文链接:VeritasInfoScale8.0(Unix,Linux,Windows)-高可用性和灾难恢复解决方案查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • 第一个小型javaweb项目练习
    这个周末对于这周的第一个javaweb实现对mes系统的增删改查操作:这个是一个基础的项目,主要是根据这个我们能够对数据库web项目的流程完成了简单的了解;其中在IDEA中实现是挺简单的,他这个都是包装好的,你可以直接使用的,但是你要明白在:main层中有4个包组成:controller,mapper,pojo,ser......
  • WEB+CA
    APPSRV、StorageSrv、INSIDECLI服务WEB服务安装WEB服务。服务以用户webuser系统用户运行。限制WEB服务只能使用系统500M物理内存。全站点启用TLS访问,使用本机上的“CSKGlobalRootCA”颁发机构颁发,网站证书信息如下:C=CNST=ChinaL=BeiJingO=skillsOU=Opera......
  • HDFS 高可用集群的搭建
    HDFS高可用集群的搭建由于条件限制,电脑只够我开3台虚拟机,所以我们就用这3台虚拟机搭建一个HDFS的高可用。在搭建之前我们先来理清一下3台虚拟机master,node1,node2分别会有哪些进程在高可用集群中会有2个NameNode,一个是活跃的(ANN),一个是备用的(SNN),每一个NAmeNode节点上都应该有一......
  • Hadoop高可用搭建
    最终每个节点上的进程ZKNNDNJNZKFCmaster1111node111111node21111、防火墙servicefirewalldstop2、时间同步yuminstallntpntpdate-us2c.time.edu.cn或者date-s201805033、配置免密ssh-keygen-trsassh-copy-idipmaster-->mast......
  • Hadoop高可用搭建
    搭建前准备(检查是否满足以下条件)1、关防火墙servicefirewalldstop2、时间同步yuminstallntpntpdate-us2c.time.edu.cn或者date-s201805033、免密钥(远程执行命令)在两个主节点生成密钥文件ssh-keygen-trsassh-copy-idipmaster-->master,node1,node2......
  • ‌webdriver.Chrome()参数简介
    webdriver.Chrome()参数‌如下:‌executable_path‌:指定ChromeDriver的路径,若未设置且系统环境变量中已配置,则会自动寻找。‌options‌:通过webdriver.ChromeOptions()创建,用于设定浏览器的启动选项,如无痕浏览、禁用图片等。‌port‌:设置WebDriver服务的端口,默认是0,表示使用任意......