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/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 节点的部署和配置。
  • 42
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值