Calico配置路由反射器 (RR) 模式

news/2024/5/20 0:02:36/文章来源:https://blog.csdn.net/qq_38483331/article/details/137085396

RR介绍

        在 Calico 网络中,默认使用 Node-to-Node Mesh 全互联模式,即集群中的每个节点之间都会相互建立 BGP 连接,用于路由交换。然而,随着集群规模的扩大,全互联模式会导致连接数成倍增加,产生性能问题。为了解决这个问题,可以使用路由反射器(Route Reflector,简称 RR)模式。

        在 RR 模式下,选择一个或多个 Calico 节点充当路由反射器,集中分发路由信息。其他节点作为 RR 的客户端,从 RR 节点获取路由信息,而不需要与所有其他节点建立 BGP 连接。

下面为使用RR和不使用RR的架构图

不使用RR
​​​

        在不使用RR模式下,每个节点都需要与其他所有节点建立BGP连接。随着节点数量的增加,连接数呈指数级增长,导致性能下降和配置复杂性增加。

使用RR
​​​​​

        在使用RR模式下,选择一个或多个节点作为路由反射器。其他节点作为RR的客户端,只需要与RR节点建立BGP连接,从RR节点获取路由信息。这样可以显著减少连接数,提高网络性能和可扩展性。

RR配置方式

1. 关闭 Node-to-Node Mesh 模式

  • 查看当前的 ASNumber(自治系统号):
calicoctl get node -o wide

  • 创建或修改 BGP 配置文件(如 node-to-node.yaml),调整 nodeToNodeMeshEnabled 和 asNumber 参数

        vim node-to-node.yaml

  apiVersion: projectcalico.org/v3kind: BGPConfigurationmetadata:name: defaultspec:logSeverityScreen: InfonodeToNodeMeshEnabled: false    #配置为falseasNumber: 64512
  • 应用配置文件
  calicoctl apply -f node-to-node.yaml

2. 配置指定节点作为路由反射器节点

  • 选择一个或多个节点作为路由反射器,为其添加标签(如 route-reflector=true):
  kubectl label node k8s-node2 route-reflector=true
  • 获取node节点配置
calicoctl get node k8s-node2 -o yaml > rr-node.yaml
  • 配置路由器反射节点routeReflectorClusterID

        vim rr-node.yaml

apiVersion: projectcalico.org/v3
kind: Node
metadata:labels:beta.kubernetes.io/arch: amd64beta.kubernetes.io/os: linuxkubernetes.io/arch: amd64kubernetes.io/hostname: k8s-node2kubernetes.io/os: linuxname: k8s-node2
spec:bgp:ipv4Address: 192.168.181.26/24routeReflectorClusterID: 233.0.0.1    #集群id随便取一个,是唯一IP地址即可
  • 应用配置文件
calicoctl apply -f rr-node.yaml

3. 创建路由反射器配置

  • 将路由反射器节点与其他非 RR 节点配置为对等

        vim bgppeer.yaml

apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:name: peer-with-route-reflectors
spec:nodeSelector: all()peerSelector: route-reflector='true'    #上面给node打的标签
  •  应用配置文件
calicoctl apply -f bgppeer.yaml
  •   查看节点的BGP连接状态

        此命令需要在每个节点本地执行,查看的是本地节点的信息

calicoctl node status

RR节点

非RR节点

RR模式优缺点

优点

  • 减少了 BGP 连接数,提高了大规模集群的性能和可扩展性。
  • 简化了路由管理,非 RR 节点只需与 RR 节点交换路由信息。

缺点

  • 引入了单点故障,如果 RR 节点出现问题,可能影响整个集群的路由。可以通过配置多个 RR 节点来提高可用性。
  • 增加了网络配置的复杂性,需要仔细规划 RR 节点的部署和配置。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 注入依赖环境

文章目录 配置依赖程序安装 JDK安装 Tomcat安装 mysql 配置依赖程序 下面配置依赖程序都以CentOS为例。 安装 JDK 可以直接使用 yum(CentOS) 直接进行安装。 先搜索,确定软件包的完整名称。 yum list | grep jdk再进行安装 进行安装的时候一定要先确保处在“管理…

前端学习--品优购项目

文章目录 前端学习--品优购项目1.案例铺垫文件建立与命名必备文件网站favicon图标网站TDK三大标签SEO优化常用命名 2.LOGO SEO优化3.实际代码4.申请免费域名 前端学习–品优购项目 1.案例铺垫 文件建立与命名 一个项目中为了方便实用和查找内容会有多个文件夹,比如…

idea插件开发案例:将批量插入方法转换成分批批量插入

代码: idea-plugin-demo 1.背景 excel导入时都会使用批量插入或者批量更新到数据库,这在mysql下没有问题。 但因为公司国产化需求,换成达梦数据库就不行了,报sql超长。 一开始想写mybatis拦截器处理,又怕出现bug,这个问…

MySQL为什么会选错索引

在平时不知道一有没有遇到过这种情况,我明明创建了索引,但是MySQL为何不用索引呢?为何要进行全索引扫描呢? 一、对索引进行函数操作 假设现在维护了一个交易系统,其中交易记录表 tradelog 包含交易流水号(tradeid)、交…

Ubuntu 中如何选择Java版本

如何在 Ubuntu 上安装多个版本的 Java 首先,我们得检查一下你的系统里是否已经装了 Java。这个很简单,只需运行下面这条命令: 在 Linux 上安装 Java 的实战示例update-java-alternatives --list 输出结果: 检查是否安装了 Java…

存储的过程

一、存储过程 1.1 概述 存储过程可以轻松而高效的去完成这个需求,有点类似shell脚本里的函数 1.2 特点 存储过程在数据库中创建并保存,它不仅仅是 SQL 语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。存储过…

lora-scripts 训练IP形象

CodeWithGPU | 能复现才是好算法CodeWithGPU | GitHub AI算法复现社区,能复现才是好算法https://www.codewithgpu.com/i/Akegarasu/lora-scripts/lora-trainstable-diffusion打造自己的lora模型(使用lora-scripts)-CSDN博客文章浏览阅读1.1k次…

web 技术中前端和后端交互过程

1、客户端服务器交互过程 客户端:上网过程中,负责浏览资源的电脑,叫客户端服务器:在因特网中,负责存放和对外提供资源的电脑叫服务器 服务器的本质: 就是一台电脑,只不过相比个人电脑它的性能高很多,个人电脑中可以通过安装浏览器的形式,访问服务器对外提供的各种资源。 个人…

如何在vue中使用echarts,与jquery中有啥不同。

一、vue中使用echarts的步骤 在 Vue 中使用 ECharts 可以按照以下步骤进行: 安装 ECharts:使用 npm 或 yarn 安装 ECharts: npm install echarts 在 Vue 组件中引入 ECharts: import echarts from echarts 在 Vue 组件的 mou…

http响应练习—在服务器端渲染html(SSR)

一、什么是服务器端渲染(SSR) 简单说,就是在服务器上把网页生成好,整个的HTML页面生成出来,生成出的页面已经包含了所有必要的数据和结构信息,然后直接发给浏览器进行展现。 二、例题 要求搭建http服务&a…

QT_day4:对话框

1、完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&…

其实StartAI也是一款修图工具 用StartAI修图之“去除背景”

其实StartAI不仅仅是一款AI绘画插件,更是一款可以对我们的摄影图片、广告海报进行修图的AI修图工具。StartAI包含了AI绘画、AI修图等多种复合型AI智能实用工具。 用【背景移除】功能对图片一个背景修图 1.实体广告图片 我们可以通过【背景移除】将广告图中的实体…

软考中级 --网络工程师真题试卷 2023下半年

在EIGRP协议中,某个路由器收到了两条路径到达目标网络,路径1的带宽为100Mbps,延迟2ms,路径2的带宽为50Mbps,迟为4ms,如果EIGRP使用带宽和延迟的综合度量标准,那么该路由器选择的最佳路径是(D)。…

【Flink】WaterMark 实战

WaterMark 实战 1.WaterMark 触发详解2.实际案例 1.WaterMark 触发详解 例如,现在我们有了一个 [12:00:00-12:00:10) 的时间窗口,现在事件如下图所示顺序 A、B、C、D、E、F … 到达。 在未设置 WaterMark 的情况下,当元素 C 到达的时候&…

[Semi-笔记]Switching Temporary Teachers for Semi-Supervised Semantic Segmentation

目录 概要创新一:Dual Temporary Teacher挑战:解决: 创新二:Implicit Consistency Learning(隐式一致性学习)挑战:解决: 实验结果小结论文地址代码地址 分享一篇2023年NeurIPS的文章…

Fastjson反序列化漏洞原理与漏洞复现(基于vulhub靶场)

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

python实战之宝塔部署flask项目

一. 项目 这个demo只是提供了简单的几个api接口, 并没有前端页面 # -*- coding: utf-8 -*- import flask as fk from flask import jsonify, requestapp fk.Flask(__name__)app.route(/api/hello, methods[GET]) def get_data():return hello world# 假设我们要提供一个获取用…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑长周期供需不平衡风险的新型电力系统规划方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

【羊了个羊全套源码-前端-后端-配置教程】非常火爆的在线微信朋友圈小游戏羊了个羊手游-Linux服务端源码架设教程!

羊了个羊全套源码-前端-后端-配置教程】站长推荐非常火爆的在线微信朋友圈小游戏羊了个羊手游-2024年3月27日最新打包Linux服务端源码架设教程!

Orbit 使用指南 10|在机器人上安装传感器 | Isaac Sim | Omniverse

如是我闻: 资产类(asset classes)允许我们创建和模拟机器人,而传感器 (sensors) 则帮助我们获取关于环境的信息,获取不同的本体感知和外界感知信息。例如,摄像头传感器可用于获取环境的视觉信息&#xff0c…