干货收藏!Calico的BGP RouteReflector策略实践

打印 上一主题 下一主题

主题 532|帖子 532|积分 1596

本文分享自华为云社区《Calico BGP RouteReflector策略实践》,作者:可以交个朋友。
一 配景

容器网络组件Calico支持多种后端模式,有Overlay的IPIP、Vxlan模式,也有Underlay纯路由的BGP模式。
相比于Overlay网络模型,Underlay网络具有更高的数据面转发性能。同时在纯路由模式下,也有两种方案:Calico BGP的fullmesh方案,该方案存在一些限制,适用于小规模kubernetes集群,集群节点越多,BGP毗连就越多,需要建立大量毗连来保证网络的互通性,每增长一个节点就要成倍的增长毗连保证网络的互通性,这样的话就会利用大量的网络斲丧。所以这时就可以利用Route Reflector模式,也称为RR模式。RR模式 中会指定一个或多个BGP Speaker为RouterReflecor,它与网络中其他Speaker建立毗连,每个Speaker只要与Router Reflector建立BGP就可以得到全网的路由信息。
二 Calico BGP RouteReflector模式组网架构

在不改变IDC机房内部网络拓扑的情况下,接入层交换机和焦点层交换机建立BGP毗连,借助于机房内部已有的路由策略实现,针对Node所处的物理位置分配Pod CIDR,并在每个节点上将Pod CIDR通过BGP协议宣告给接入层交换机,实现全网通信的能力。下图基于Leaf-Spine架构做详细说明。

组网原则:

  • 每个接入层交换机与其管理的Node二层联通,共同构成一个AS。每个节点上跑BGP服务,用于宣告本节点路由信息。
  • 焦点层交换机和接入层交换机之间的每个路由器单独占用一个AS,物理直连,跑BGP协议。焦点层交换机可以感知到全网的路由信息,接入层交换机可以感知与自己直连的Node上的路由信息。
  • 同一个主机上的pod互访通过宿主机路由器。(将linux主机当成一个路由器)
  • 同一个机架上差别node上的pod通信通过TOR(leaf)交换机
  • 差别机架上pod通信走焦点交换机
三 模拟生产场景组网搭建情况

提前准备一台Ubuntu2204操作体系的机器(规格8U16G即可)。需要在假造机上安装如下软件工具:

  • Docker
  • go开发情况
  • Kind(kubernetes爱好小组开发的一款kuberntes in docker软件,可用来快速搭建k8s测试情况,kind安装需要主机上先安装go,kind安装版本可选v0.20.0版本)
  • ContainerLab(利用容器技能构建的假造网络平台,可以利用vyos镜像构建假造的交换机路由器。建议安装v0.42.0版本的containerlab)

3.1 kubernetes 情况搭建

kubernetes集群版本为: 1.27.3
集群规模为1 master,3 work node
集群构建脚本如下: 1-setup-env.sh
[code]#!/bin/bashdateset -v# 1.prep noCNI envcat

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表