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

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.hqwc.cn/news/572663.html

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

相关文章

【正点原子FreeRTOS学习笔记】————(12)信号量

这里写目录标题 一、信号量的简介(了解)二、二值信号量(熟悉)三、二值信号量实验(掌握)四、计数型信号量(熟悉)五、计数型信号量实验(掌握)六、优先级翻转简介…

23种设计模式之创建型模式 - 单例模式

文章目录 一、单例模式1.1单例模式定义1.2 单例模式的特点 二、实现单例模式的方式2.1 饿汉式2.2 懒汉式2.3 双重检查锁:2.4 静态内部类2.5 枚举实现(防止反射攻击): 一、单例模式 1.1单例模式定义 单例模式确保系统中某个类只有…

表格中的状态类型值(tag)

一&#xff1a;数字转换为简单的中文值 ** 不用转换直接用find()方法&#xff1a;在statusList里找&#xff1b; **lastHandleCode是对应的获取到的每行数据的code值&#xff1b; vue: <el-table-column label"执行状态" align"center"><templat…

Collection与数据结构 链表与LinkedList (一):链表概述与单向无头非循环链表实现

1.ArrayList的缺点 上篇文章我们已经对顺序表进行了实现,并且对ArrayList进行了使用,我们知道ArrayList底层是使用数组实现的. 由于其底层是一段连续空间&#xff0c;当在ArrayList任意位置插入或者删除元素时&#xff0c;就需要将后序元素整体往前或者往后搬移&#xff0c;时…

SpringMvc之映射器HandlerMapping

简介 在springmvc的处理流程中&#xff0c;第一步就是查询请求对应的映射器&#xff0c;然后组装成处理器链处理请求&#xff0c;本文意在梳理该过程 重要实现 HandlerMapping是一个接口&#xff0c;该接口用于通过HttpServletRequest寻找对应的处理器&#xff0c;接口介绍如下…

windows系统安装RabbitMQ

RabbitMQ是实现了高级消息队列协议&#xff08;AMQP&#xff09;的开源消息代理软件&#xff08;亦称面向消息的中间件&#xff09;。RabbitMQ服务器是用Erlang语言编写的&#xff0c;而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客…

PL/SQL概述

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 PL/SQL概述 PL/SQL(Procedural Language extension to SQL)是 Oracle 对标准 SQL语言的扩充&#xff0c;是专门用于各种环境下对 Oracle 数据库进行访问和开发的语言。 由…

【有限状态机】- FSM详细讲解 【附Autoware有限状态机模型代码讲解】

参考博客&#xff1a; &#xff08;1&#xff09;FSM&#xff08;有限状态机&#xff09; &#xff08;2&#xff09;关于有限状态机(FSM)的一些思考 &#xff08;3&#xff09;状态设计模式 1 状态机简介 有限状态机FSM&#xff1a;有限个状态以及在这些状态之间的转移和动作…

文献阅读工具-->Adobe pdf + 有道词典

Adobe pdf 有道词典 最近一直在考虑用什么文献阅读工具&#xff0c;痛点无非就是想用翻译功能&#xff0c;Adobe pdf的添加注释已经很好用了&#xff0c;使用了zotero&#xff0c;感觉不行&#xff08;不能直接对原文件修改&#xff0c;有副本&#xff0c;麻烦&#xff09;。…

帆软报表在arm架构的linux

有朋友遇到一个问题在部署帆软报表时遇到报错。 问 我在 arm架构的linux服务器上部署帆软报表遇到了一个棘手的问题&#xff0c;你有空帮忙看下嘛。 我看后台日志报的错是 需要升级 gcc、libmawt.so &#xff0c;是系统中缺少Tomcat需要的依赖库&#xff0c;你之前处理过类似…

服务器监控软件夜莺采集监控(三)

文章目录 一、采集器插件1. exec插件2. rabbitmq插件3. elasticsearch插件 二、监控仪表盘1. 系统信息2. 数据服务3. NginxMQ4. Docker5. 业务日志 一、采集器插件 1. exec插件 input.exec/exec.toml [[instances]] commands ["/home/monitor/categraf/scripts/*.sh&q…

6.二叉树——2.重建树

已知先序和中序序列 根据先序序列找到树根根据树根和中序序列找到左右子树 同理根据后序序列和中序序列也能重构树&#xff0c;但前序和后序不可以 递归coding思路 设先序序列为preorder[n]&#xff0c;中序序列为midorder[n] 大事化小&#xff1a; 确定根&#xff0c;即树…