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

48、DR+keepalive

DR+keepalive

注意vrrp_iptables:##不创建iptables策略

keepalive的脑裂问题怎么解决?

在这里插入图片描述

DR+keepalive解决主服务器挂了,备服务器立即进入工作。

DR+keepalive思路

主调度器:test1:192.168.168.100副调度器:test2:192.168.168.100RS服务器1:192.168.168.10:80RS服务器2:192.168.168.20:80客户端:192.168.168.70

主、备调度器配置:

安装ipvsadm、keekpalived

yum -y install ipvsadm keekpalived

配置vim /etc/sysctl.conf

net.ipv4.ip_forward=0
#关闭数据包转发功能
net.ipv4.conf.all.send_redirects = 0
##禁止系统发送icmp重定向的消息。###lo回环接口不接收icmp消息。只针对真实的ip地址。
net.ipv4.conf.default.send_redirects = 0
##禁止网络接口发送icmp重定向的消息。
net.ipv4.conf.ens33.send_redirects = 0
##针对ens33设备,禁止发送icmp重定向消息。

再配置调度器四层转发规则

ipvsadm -A -t 192.168.168.100:80 -s rr
ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.10:80 -g
ipvsadm -a -t 192.168.168.100:80 -r 192.168.168.20:80 -g

core模块:keepalive的核心模块,负责主进程的启动、以及全局文件的加载。

vrrp模块:实现vrrp协议的模块,也就是主功能模块。

check模块:负责健康检查。也可以负责检查后台真实服务器的情况。

vim /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id lvs_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.168.100}
}virtual_server 192.168.168.100 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.168.10 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 192.168.168.20 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}

systemctl restart keepalived.service
iptables -vnL

调度器/etc/keepalived/keepalived.conf复制完进行修改

进调度器2进行配置/etc/keepalived/keepalived.conf

scp root@192.168.168.50:/etc/keepalived/keepalived.conf /etc/keepalived/

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id lvs_02vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_instance VI_2 {state BACKUPinterface ens33virtual_router_id 51priority 95advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.168.100}
}virtual_server 192.168.168.100 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.168.10 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}real_server 192.168.168.20 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 4}}
}

systemctl stop keepalived.service
systemctl restart network

两台RS服务器配置

设置虚拟回环接口

服务器1:vim /usr/local/nginx/html/index.html this is nginx1systemctl restart nginx服务器2:vim /usr/local/nginx/html/index.html this is nginx2systemctl restart nginx

两台服务器RS同时开启:

DEVICE=lo:0
IPADDR=192.168.168.100
NETMASK=255.255.255.255ONBOOT=yescd /etc/sysconfig/network-scripts/vim /etc/sysctl.confroute add -host 192.168.168.100 dev lo:0设置ip地址为192.168.168.100的只添加到回环接口,做为lvs的vip。通过路由的模式转发到RS,能让vip识别到真实的服务器。vim /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore = 1#设置回环接口忽略来自任何接口的ARP请求
net.ipv4.conf.lo.arp_announce = 2
#设置回环地址仅仅公告本地的ip地址,但是不响应ARP请求
net.ipv4.conf.all.arp_ignore = 1
##设置所有接口忽略来自任何接口的ARP请求
net.ipv4.conf.all.arp_announce = 2
##设置所有接口仅仅公告本地的ip地址,但是不响应ARP请求。sysctl -p

curl 192.168.168.100

在这里插入图片描述

调度器1停止keepalive,模拟挂机
systemctl stop keepalived.service
ip addr

在这里插入图片描述

ip addr

在这里插入图片描述

vrrp_iptables:##不创建iptables策略
= 2
##设置所有接口仅仅公告本地的ip地址,但是不响应ARP请求。

sysctl -p


curl 192.168.168.100[外链图片转存中...(img-THpIG3tS-1720691877807)]ip addr[外链图片转存中...(img-R6gYbpkO-1720691877807)]ip addr[外链图片转存中...(img-QKEWZ76d-1720691877808)]vrrp_iptables:##不创建iptables策略

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JS【详解】类 class ( ES6 新增语法 )
  • Golang | Leetcode Golang题解之第227题基本计算器II
  • 架构面试-场景题-单点登录(SSO)怎么实现的
  • ELK日志分析系统概述及部署
  • x264 编码器 AArch64 汇编函数模块关系分析
  • 【数据结构】排序——快速排序
  • 计算机网络体系结构解析
  • 微生活服务平台与元宇宙的融合
  • 《长相思》第二季回归:好剧质量,永恒的王牌
  • 常用录屏软件,分享这四款宝藏软件!
  • C++ STL iter_swap用法和实现
  • 视频汇聚平台EasyCVR设备录像回看请求播放时间和实际时间对不上,是何原因?
  • FPGA设计之跨时钟域(CDC)设计篇(2)----如何科学地设计复位信号?
  • Conda:Python环境管理的瑞士军刀
  • Oracle基础以及一些‘方言’(一)
  • php的引用
  • 2018一半小结一波
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • go语言学习初探(一)
  • JavaScript 一些 DOM 的知识点
  • Joomla 2.x, 3.x useful code cheatsheet
  • Linux链接文件
  • Odoo domain写法及运用
  • Python学习之路16-使用API
  • QQ浏览器x5内核的兼容性问题
  • Vultr 教程目录
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 对象管理器(defineProperty)学习笔记
  • 诡异!React stopPropagation失灵
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前嗅ForeSpider教程:创建模板
  • 携程小程序初体验
  • 大数据全解:定义、价值及挑战
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​字​节​一​面​
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #define、const、typedef的差别
  • $$$$GB2312-80区位编码表$$$$
  • ( 10 )MySQL中的外键
  • (C语言)共用体union的用法举例
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (不用互三)AI绘画工具应该如何选择
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (七)Flink Watermark
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转载)Linux网络编程入门
  • (轉)JSON.stringify 语法实例讲解
  • ..回顾17,展望18
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .Net Core 笔试1