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

news2024/11/16 22:20:49

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/v3
  kind: BGPConfiguration
  metadata:
    name: default
  spec:
    logSeverityScreen: Info
    nodeToNodeMeshEnabled: false    #配置为false
    asNumber: 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: amd64
    beta.kubernetes.io/os: linux
    kubernetes.io/arch: amd64
    kubernetes.io/hostname: k8s-node2
    kubernetes.io/os: linux
  name: k8s-node2
spec:
  bgp:
    ipv4Address: 192.168.181.26/24
    routeReflectorClusterID: 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.coloradmin.cn/o/1550753.html

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

相关文章

【爬虫基础】第6讲 opener的使用

在爬虫中,opener是一个用来发送HTTP请求的对象。它可以用来模拟浏览器发送请求,包括设置请求头、处理Cookie等操作。使用opener可以实现一些高级功能,如模拟登录、处理验证码等。 方法1: from urllib.request import Request,bu…

AJAX~

概念:AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML AJAX作用: 1.与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据 使用了AJAX和服务器进行通信,就可以使用HTMLAJAX来替换JSP页面了 2&#xf…

亮数据——让你的IP走出去,让价值返回来

亮数据——让你的IP走出去,让价值返回来 前言跨境电商最最最大的痛点——让IP走出去超级代理服务器加速网络免费的代理管理软件亮数据解决痛点亮数据优势介绍亮数据浏览器的使用示例总结 前言 当前社会信息的价值是不可想象的,今天在亮数据中看到了个【…

element表格 加滚动,监听底部实现分页加载

表格要实现滚动很简单,给他加一个高度即可 height"300" 然后是监听事件 mounted() {this.lazyLoading();}, methods:{lazyLoading(){let dom document.querySelector(".el-table__body-wrapper");dom.addEventListener("scroll", (…

java之jvm调优实战

我们今天是讲java虚拟机,我们刚学java的时候写过hellowWorld 我们通过javaC指令把java 文件编译成字节码文件(class) 最终通过我们jvm 将class文件运行在 windows和linux平台上 我们也都知道java 语言有个跨平台,对我们java程序来说我们写的一份Java代码…

发掘非结构化数据价值:AI 在文档理解领域的现状与未来

编者按: 在当今这个由数据主导的时代,我们被海量多样的信息所环绕,但大部分数据都以非结构化的形式存在,诸如文档、电子邮件、合同等,这使得从中提取有价值的信息成为一大挑战。 幸运的是,AI 领域正在悄然孕…

负荷频率控制LFC,自抗扰ADRC控制,麻雀SSA算法优化自抗扰参数,两区域二次调频simulink/matlab

红色曲线为优化结果,蓝色曲线为没有自抗扰和没有优化的结果!

JWT认证原理

简介: JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally …

用户下单、订单支付

一、用户下单 1.1 需求分析和设计 1.2 代码开发 1.2.1 Controller层 import com.sky.dto.OrdersSubmitDTO; import com.sky.result.Result; import com.sky.service.OrderService; import com.sky.vo.OrderSubmitVO; import io.swagger.annotations.Api; import io.swagger.a…

友商健康巡检分析

1、腾讯云 健康检查的参考资料:​​cloud.tencent.com​​ 检查的项目(参数说明) 检查类别 检查项 检查内容 资源状态 kube-apiserver 的状态 检测组件是否正在运行,如果组件以 Pod 形式运行,则检测其24小时内是…

《系统架构设计师教程(第2版)》第7章-系统架构设计基础知识-05-特定领域软件体系结构(DSSA)

文章目录 1. DSSA的定义1.1 概述1.2 DSSA 的必备特征如下 2. DSSA的基本活动2.1 领域分析2.2 领域设计2.3 领域实现 3. 参与DSSA的人员3.1 领域专家3.2 领域分析人员3.3 领域设计人员3.4 领域实现人员 4. DSSA的建立过程4.1 定义领域范围4.2 定义领域特定的元素4.3 定义领域特定…

[密码学] 密码学基础

目录 一 为什么要加密? 二 常见的密码算法 三 密钥 四 密码学常识 五 密码信息威胁 六 凯撒密码 一 为什么要加密? 在互联网的通信中,数据是通过很多计算机或者通信设备相互转发,才能够到达目的地,所以在这个转发的过程中,如果通信包…

安静:内向性格的竞争力 - 三余书屋 3ysw.net

精读文稿 这期我们介绍的这本书叫做《安静》,副标题是《内向性格的竞争力》。本书共有267页,我会用大约25分钟的时间为你讲述书中的精髓。内向性格具备什么样的竞争力?内向性格的人在人际交往和日常生活中似乎总是吃亏,因为他们不…

c语言知识点整理------基础c语言框架,数据类型,变量常量,注释

前言 本文不涉及讲解原理,用简洁明了的风格,去整理方便查阅的知识点。 (适合有编程基础,或者需要作为笔记的人群使用) 程序基本框架 结果会输出hello world。 程序的执行 c语言属于编译型语言。 代码执行分为五个…

python学习13:python中的字符串格式化

python中的字符串格式化另外一种方式 我们前面是使用的%d,%f,%s占位符来实现字符串的格式化的;这次我们通过f"{}"来快速实现格式化,代码示例如下:

计算机网络(二)物理层

物理层 一、通信基础1.奈氏准则、香农定理2.编码与调制3.电路交换、报文交换、分组交换 二、 传输介质、设备1.导向性传输介质:1.1双绞线1.2 同轴电缆1.3光纤 2.非导向性传输介质: 一、通信基础 信道带宽:信道能通过的最高频率和最低频率之差…

管理阿里云服务器ECS -- 网站选型和搭建

小云:我已经学会了如何登录云服务器ECS了,但是要如何搭建网站呢? 老王:目前有很多的个人网站系统软件,其中 WordPress 是使用非常广泛的一款,而且也可以把 WordPress 当作一个内容管理系统(CMS…

739.每日温度

class Solution:def dailyTemperatures(self, temperatures: List[int]) -> List[int]:n len(temperatures)#从小到达&#xff0c;存放下标 把-1当作栈顶&#xff0c;0当作栈底index_stack [0]res [0] * nfor i in range(1,n):if temperatures[i] < temperatures[ind…

MSTP-3 8K/4K多业务综合光传输平台

MSTP-3作为全新的多业务综合光传输平台&#xff0c;是目前市场上少有的非插卡式、集中式最大32路4K多业务综合光传输产品&#xff0c;不但实现了自主知识产权和国产化替代&#xff0c;还填补了国内多通道8K/16K远距离光传输产品空白。 ⚫ 单套设备即可实现集中式多业务远距离光…

深入解析《企业级数据架构》:HDFS、Yarn、Hive、HBase与Spark的核心应用

写在前面 进入大数据阶段就意味着进入NoSQL阶段&#xff0c;更多的是面向OLAP场景&#xff0c;即数据仓库、BI应用等。 大数据技术的发展并不是偶然的&#xff0c;它的背后是对于成本的考量。集中式数据库或者基于MPP架构的分布数据库往往采用的都是性能稳定但价格较为昂贵的小…