当前位置: 首页 > news >正文

keepalived集群

keepalived概述

keepalived软件就是通过vrrp协议来实现高可用功能。  

VRRP通信原理

VRRP就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。

VRRP是通过一种竞选一种协议机制来将路由交个某台VRRP路由器。

VRRP 用IP多播的方式(多播地址224.0.0.18)实现高可用之间的通信工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管主节点的资源,备节点可以有多个,通过优先级来进行竞选,但一般keepalived系统运维工作时对VRRP使用加密协议加密数据,但keepalived官方目前还是推荐用明文的方式认证类型和密码。

keepalived的体系,模块及作用

故障自动切换(failover)

实现LVS集群中节点健康检查

节点服务器高可用性(HA)、

keepalived体系架构中主要有三个模块,分别是core、check和vrrp。

core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析。

vrrp模块:是来实现VRRP协议的。

check模块:负责健康检查,常见的方式有端口检查及URL检查。

keepalived的工作原理

keepalived高可用之间是通过VRRP进行通信,VRRP是通过竞选的来确定主备,主优先级高于备,因此,工作时主优先获得所有资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点资源,然后顶替主节点对外提供服务。

keepalived服务之间,只有作为主的服务器一直发送VRRP广播包,告诉备我还活着,此时备不会去抢占主,当主不可用的时候,即备要监听不到主发送的广播包时,它就会启动相关服务来去接管资源,保证业务的连续性,接管速度最快小于1秒。

脑裂

在高可用( HA )系统中,当联系 2 个节点的 “ 心跳线 ” 断开时,本来为一整体、动作协调的 HA 系统, 就分裂成为 2 个独立的个体。 由于相互失去了联系,都以为是对方出了故障。两个节点上的 HA 软件会争抢 “ 共享资源 ” 、争起 “ 应用服务 ” ,就会发生严重后果。共享资源被瓜分、两边 “ 服务 ” 都起不来了;或者两边“ 服务 ” 都起来了,但同时读写 “ 共享存储 ” ,导致数据损坏。

实例

1.配置负载调度器(主、备相同)

systemctl stop firewalld.service
setenforce 0yum -y install ipvsadm keepalived
modprobe ip_vs#配置keeplived
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf

 

 

配置vip(虚拟IP)
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yesifcon	
IPADDR=192.168.10.188
NETMASK=255.255.255.255systemctl restart network
ifup  ens33:0 

#启动 ipvsadm 服务
systemctl start ipvsadm
ipvsadm -C   
ipvsadm -A -t 192.168.11.180:80 -s rr
ipvsadm -a -t 192.168.11.180:80 -r 192.168.11.33:80 -g
ipvsadm -a -t 192.168.11.180:80 -r 192.168.11.11:80 -g
ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm
调整 proc 响应参数,关闭Linux 内核的重定向参数响应
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p

2、配置节点服务器

#配置vip
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.10.188
NETMASK=255.255.255.255

vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p

3.测试验证

在客户端访问 http://192.168.11.180/

 

 

http://www.lryc.cn/news/129235.html

相关文章:

  • CentOS系统环境搭建(八)——CentOS7开机自动执行脚本(以MySQL为例)
  • re学习(31)BUUCTF-xx(多层加密)
  • HDFS的小文件影响及解决办法
  • 【前端】husky 的使用
  • Spring系列篇 -- Bean的生命周期
  • 分类预测 | MATLAB实现BO-BiGRU贝叶斯优化双向门控循环单元多输入分类预测
  • Linux权限系列--给普通用户添加某个命令的sudo权限
  • 11-数据结构-栈和队列的应用(C语言)
  • uni-app自定义多环境配置,动态修改appid
  • 04 - 分离头指针情况、理解HEAD和branch
  • C#__基本特性和使用
  • mysql(3)
  • 阿里巴巴常用的12个后端开发工具
  • php base64转图片保存本地
  • unity物体移动至指定位置
  • 详解C#-static void Main(string[] args)
  • 中大许少辉博士《乡村振兴战略下传统村落文化旅游设计》中国建筑工业出版社八一付梓。
  • Matplotlib数据可视化(五)
  • Python爬虫——requests_post请求
  • excel 下载方法封装
  • 按日,周,月,季,年统计;获取对应的时间段
  • 【eNSP】交换机(vlan和vlan间通信)
  • 2011年下半年 软件设计师 上午试卷2
  • Linux中安装MySQL8版本,安装MySQL步骤,MySQL8离线安装
  • MES生产管理系统如何与ERP系统集成
  • Kafka如何保证消息⼀定能被消费
  • [USACO1.5] 八皇后 Checker Challenge
  • 【Mysql】MVCC版本机制的多并发
  • Vue--》打造个性化医疗服务的医院预约系统(六)
  • Unity ARFoundation 配置工程 (Android)