什么你还不懂keepalived高可用负载均衡架构?

news2024/9/21 4:34:20

1、部署keepalived

1.1、keepalived简介

vrrp 协议的软件实现,原生设计目的为了高可用 ipvs 服务
官网: http://keepalived.org/
功能:
  • 基于 vrrp 协议完成地址流动
  • vip 地址所在的节点生成 ipvs 规则 ( 在配置文件中预先定义 )
  • ipvs 集群的各 RS 做健康状态检测
  • 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持 nginx haproxy 等服务

1.2、keepalived架构

  • 用户空间核心组件:
    vrrp stackVIP消息通告
    checkers:监测real server
    system call:实现 vrrp 协议状态转换时调用脚本的功能
    SMTP:邮件组件
    IPVS wrapper:生成IPVS规则
    Netlink Reflector:网络接口
    WatchDog:监控进程
  • 控制组件:提供keepalived.conf 的解析器,完成Keepalived配置
  • IO复用器:针对网络目的而优化的自己的线程抽象
  • 内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限

2.3keepalived环境准备

 

  •  各节点时间必须同步:ntp, chrony
  • 关闭防火墙及SELinux
  • 各节点之间可通过主机名互相通信:非必须
  • 建议使用 /etc/hosts 文件实现:非必须
  • 各节点之间的 root 用户可以基于密钥认证的 ssh 服务完成互相通信:非必须

2.4keepalived相关文件

  • 软件包名:keepalived
  • 主程序文件:/usr/sbin/keepalived
  • 主配置文件:/etc/keepalived/keepalived.conf
  • 配置文件示例:/usr/share/doc/keepalived/
  • Unit File/lib/systemd/system/keepalived.service
  • Unit File的环境配置文件:/etc/sysconfig/keepalived

2.5keepalived安装以及配置说明

配置文件组成

  • GLOBAL CONFIGURATION
    Global definitions: 定义邮件配置,route_idvrrp配置,多播地址等
  • VRRP CONFIGURATION
    VRRP instance(s)定义每个vrrp虚拟路由器
  • LVS CONFIGURATION
    Virtual server group(s)
    Virtual server(s)LVS集群的VSRS

全局参数 

#keepalived下载
yum install keepalived -y
#配置全局参数
vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {        #发送邮件的目的地
     3066284972@qq.com
   }
   notification_email_from keepalived@KA1.com       #发送邮件的邮箱
   smtp_server 127.0.0.1       #发送邮件的主机
   smtp_connect_timeout 30     #发送邮件的超时时间
   router_id LVS_DEVEL         #每个keepalived主机的唯一标识
   vrrp_skip_check_adv_addr    #如收到的报文通告和上一个报文来自路由器一致,则不检查,默认全检查
   vrrp_strict                 #严格遵守vrrp协议,不建议开启
   vrrp_garp_interval 0        #报文发送延迟 0无延迟
   vrrp_gna_interval 0         #消息发送延迟 0无延迟
   vrrp_mcast_group4 224.0.0.18        #指定组播IP地址范围
}

虚拟路由器,高可用配置点 

#vrrp参数
vrrp_instance VI_1 {
    state MASTER            #设定该服务器默认为主服务器
    interface eth0          #设定使用的接口是eth0
    virtual_router_id 100   #设置vrrp组唯一标识 0~255
    priority 100            #设定该服务器的优先级,越大越优先 1~254
    advert_int 1            #vrrp通告的时间间隔,默认为1s
    authentication {        #认证机制
        auth_type PASS      #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)
        auth_pass 1111      #预共享密钥,仅前8位有效,一个虚拟路由器的多个keepalived节点必须一样
    }
    virtual_ipaddress {     # #虚拟IP,即VIP
        #配置格式
        # <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
        192.168.220.100/24 dev eth0 label eth0:1
    }
}

后端Real server ,负载均衡配置点

virtual_server 192.168.220.100 80 {        #VS
    delay_loop 6        #检查后端服务器的时间间隔
    lb_algo wrr         #使用的调度算法:rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR          #使用的模式:NAT|DR|tUN
    protocol TCP        #使用的协议:TCP|UDP|SCTP
    persistence_timeout 0        #持久连接时长
    real_server 192.168.220.210 80 {        #RS
        weight 1        #权重
        HTTP_GET {      #检测方法:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
            url {        
              path /
              status_code 200        #检测url页面返回状态码
            }
              connect_timeout 2        #连接超时时间
              nb_get_retry 2           #连接重试次数
              delay_before_retry 1     #连接重试前等待多长时间
        }
    }
    real_server 192.168.220.220 80 {
        weight 1
        HTTP_GET {
            url {
              path /
              status_code 200
            }
              connect_timeout 2
              nb_get_retry 2
              delay_before_retry 1
        }
    }
}

2.5.1、启用keepalived日志功能

vim /etc/sysconfig/keepalived
#修改配置后保存退出
KEEPALIVED_OPTIONS="-D -S 5"

vim /etc/rsyslog.conf
#增加一行配置
local5.*                                                /var/log/keepalive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 操作系统 --- 信号

序言 在本篇内容中&#xff0c;将为大家介绍在操作系统中的一个重要的机制 — 信号。大家可能感到疑惑&#xff0c;好像我在使用 Linux 的过程中并没有接触过信号&#xff0c;这是啥呀&#xff1f;其实我们经常遇到过&#xff0c;当我们运行的进程当进程尝试访问非法内存地址时…

NC 数组中只出现一次的两个数字

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 一个整型数组…

Apache--简介与基本使用

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、Apache简介 Apache HTTP Server&#xff08;在Red Hat发行版中俗称Apache或httpd&#xff09;是由Apache Software Foundation在Apache License…

windows bat脚本基础指令详解

pause暂停批处理的执行并在屏幕上显示"请按任意键继续…"echo显示指令&#xff0c;会把需要显示的内容展示出来。echo off在此语句后所有运行的命令都不显示命令行本身&#xff0c;但是本身的指令是会显示出来的。不显示本行命令行call调用另一个批处理文件&#xff…

Ricardo Milos

目录 一、题目 二、思路 三、payload 四、思考与总结 一、题目 <!-- Challenge --> <form id"ricardo" method"GET"><input name"milos" type"text" class"form-control" placeholder"True" va…

【C++STL详解(十一)】map/set/multimap/multiset的介绍与使用

目录 一、关联式容器 二、键值对 三、set 介绍 简单使用 1.构造 2.相关迭代器 3.容量 4.修改 四、multiset 五、map 介绍 使用 1.定义的方式 2.迭代器相关 3.容量与operator【】(重点) 4.修改 小总结&#xff1a; 六、multimap 一、关联式容器 在CSTL中…

【学习笔记】A2X通信的协议(十三)- 消息功能定义和内容

目录 11 消息功能定义和内容 11.1 概述 11.2 通过PC5信令消息进行的A2X通信 11.2.1 A2X直接链路建立请求 11.2.1.1 消息定义 11.2.1.2 目标用户信息 11.2.1.3 密钥建立信息容器 11.2.1.4 Nonce_1 11.2.1.5 KNRP-sess ID的最高有效位&#xff08;MSB&#xff09; 11.2…

替代 SMR 算法!两步孟德尔随机化方法 TWMR 与 revTWMR 整合xQTL+GWAS数据分析基因表达与疾病的关联

全基因组关联研究&#xff08;GWAS&#xff09;是研究大型队列中基因型与表型关系的重要工具。GWAS的已知局限性主要在于从与致病变异相关的连锁不平衡区域中识别生物学机制&#xff0c;而无法直接获得基因层面的表型关联。为了解决这个问题&#xff0c;基于转录组关联研究&…

C语言——函数专题

1.概念 在C语言中引入函数的概念&#xff0c;有些翻译为子程序。C语言中的函数就是一个完成某项特定任务的一小段代码&#xff0c;这个代码是有特殊的写法和调用方法的。一般我们可以分为两种函数&#xff1a;库函数和自定义函数。 2.库函数 C语言国际标准ANSIC规定了一些常…

Docker 容器运行时如何实现与宿主机的目录挂载

虽然容器启动前挂载目录相对简单,只需要在启动容器的时候通过-v 参数即可轻松实现,但对于已运行的容器进行目录挂载则稍显复杂。本教程将深入讲解如何在不中断容器运行的情况下,为已运行的Docker容器配置目录挂载,实现灵活的数据共享与持久化策略。 一、环境准备 为了本次实…

ffmpeg采用gpu加速增加水印

1.环境需要 系统 windows10 ffmpeg&#xff0c;ffprobe 字体文件 python3以上版本 2.环境配置 从官网上下载ffmpeg版本https://github.com/BtbN/FFmpeg-Builds/releases&#xff0c;这里我用的是这个&#xff0c;解压之后里面包含ffmpeg&#xff0c;ffprobe&#xff0c;f…

使用Kernel Memory进行RAG评估:AI助力企业知识管理新突破

在现代企业知识管理中&#xff0c;随着业务的不断发展和扩展&#xff0c;各种文档和数据呈现爆炸式增长。为了有效且高效地管理这些知识&#xff0c;企业通常会导入大量文档。然而&#xff0c;当涉及到对文档切片质量和回答准确度的判断时&#xff0c;传统的人工方法显得既费时…

复现dom破坏案例和靶场

目录 1.dom型xss平台 第一关 Ma Spaghet !: &#xff08;1&#xff09;&#xff1a;当get参数中存在somebody时&#xff0c;h2回显 &#xff08;2&#xff09;&#xff1a;当get参数中不存在somebody时&#xff0c;h2回显 第二关Jefff&#xff1a; 第三关&#xff1a;Ugan…

【前端面试】挖掘做过的nextJS项目(中)

https://blog.csdn.net/weixin_43342290/article/details/141170360?spm1001.2014.3001.5501文章浏览阅读105次。需求:快速搭建宣传官网1.适应pc、移动端2.基本的路由跳转3.页面渲染优化4.宣传的图片、视频资源的加载优化5.seo优化全栈react web应用、tailwind css原子工具的支…

动态规划篇--代码随想录算法训练营第三十二天|343. 整数拆分,96.不同的二叉搜索树,01背包理论,01背包优化

343. 整数拆分 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 讲解视频&#xff1a; 动态规划&#xff0c;本题关键在于理解递推公式&#xff01;| LeetCode&#xff1a;343. 整数拆分 题目描述&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k …

c++47 二级指针

二级指针的输入和输出模型 指针的输入&#xff1a;主调函数分配内存 指针输出 &#xff1a;被调用函数分配内存 指针做输入第一种模型 #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <stdio.h>// 二级指针做输…

《计算机组成原理》(第3版)第8章 CPU的结构和功能 复习笔记

第8章 CPU的结构和功能 一、CPU的结构 &#xff08;一&#xff09;CPU的含义 CPU实质包括运算器和控制器两大部分。 对于冯诺依曼结构的计算机而言&#xff0c;一旦程序进入存储器后&#xff0c;就可由计算机自动完成取指令和执行指令的任务&#xff0c;控制器就是专用于完成…

Python爬虫图片:从入门到精通

在数字化时代&#xff0c;图片作为信息传递的重要媒介之一&#xff0c;其获取和处理变得越来越重要。Python作为一种功能强大且易于学习的编程语言&#xff0c;非常适合用来编写爬虫程序&#xff0c;帮助我们自动化地从互联网上获取图片资源。本文将从基础到高级&#xff0c;详…

CTF密码学小结

感觉没啥好总结的啊 基础的永远是RSA、流密码、哈希、对称密码、古典密码那一套&#xff08;密码学上过课都会&#xff09;&#xff0c;其他的就是数论的一些技巧 似乎格密码也很流行&#xff0c;以及一些奇奇怪怪的性质利用也很多 1、random设置种子后随机的性质&#xff1a…

【LiteX】【开发板】【BoChenK7】使用Python开发FPGA【Hello World、LED点灯、Memory测速、替换BIOS】

目录 开发板介绍下载仓库工程设计工程构建构建流程 工程测试Hello WorldLED点灯Memory测速替换BIOS 开发板信息 开发板介绍 手头目前只有一个购买的BoChenK7开发板&#xff0c;后续会用它来进行LiteX FPGA SoC的构建 测试可能会包括&#xff1a; LED&#xff1a;本篇文章 DDR …