首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库伯内特斯: CNI如何利用BPG?

库伯内特斯: CNI如何利用BPG?
EN

Stack Overflow用户
提问于 2022-06-13 14:05:29
回答 1查看 110关注 0票数 1

在学习Kubernetes CNI时,我听说一些插件正在使用BGP或VXLAN。

在internet上,边界网关协议(BGP)管理数据包如何在边缘路由器之间路由。

自治系统(AS)是由单个企业或服务提供商管理的网络路由器。例如,Facebook谷歌

自治系统(AS)与对等体通信并形成网格。

但我仍然不知道CNI插件是如何利用BGP的。

假设有一个Kubernetes集群,它由10个节点组成。Calico是被选中的CNI插件。

  • 谁扮演自治系统(AS)角色?每个节点都是AS吗?
  • 数据包如何从一个节点转发到另一个节点?仍然需要iptable吗?
EN

回答 1

Stack Overflow用户

发布于 2022-06-14 08:26:19

CNI插件负责分配IP地址(IPAM),并确保数据包到达需要获取的位置。

具体来说,你可以从架构页面网络设计回忆录中获得很多信息。

每当创建新的Pod时,IPAM插件从全局池分配IP地址,Kubernetes调度程序将Pod分配给节点。Calico插件(和其他插件一样)将网络堆栈配置为接受到Pod IP的连接,并将它们路由到内部进程。这种情况发生在iptables中,并使用了一个名为Felix的辅助过程。

每个节点还运行一个鸟(BGP)守护进程,监视这些配置事件:“IP10.x.y.z托管在节点A上”。这些配置事件被转换为BGP更新,并使用打开的BGP会话发送到其他节点。当其他节点接收到这些BGP更新时,它们会对节点路由表(使用简单的ip route命令)进行编程,以确保节点知道如何到达Pod。在这个模型中,是的,每个节点都是AS。

我刚才描述的是“按计算服务器计算”模型:它适用于节点不一定位于同一L2网络的环境中的小型部署。问题是,每个节点都需要与其他节点一起维护BGP会话,其规模为O(N^2)。

因此,对于更大的部署,折衷方案是按计算服务器的每个机架运行一个(“按每个机架”)。每个机架交换机的顶部然后运行BGP,以通信路由到其他机架,而交换机内部知道如何路由数据包。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72604238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档