Bootstrap

Kubernetes 中 BGP 与二层网络的较量:究竟孰轻孰重?

如果你曾搭建过Kubernetes集群,就会知道网络配置是一个很容易让人深陷其中的领域。在负载均衡器、服务通告和IP管理之间,你要同时应对许多变动的因素。对于许多配置而言,使用二层(L2)网络就完全能满足需求。但边界网关协议(BGP)—— 支撑互联网运行的技术 —— 也逐渐出现在有关Kubernetes的讨论中。那么,为什么人们对在Kubernetes中使用BGP而非二层网络如此兴奋呢?

在这里插入图片描述

让我们详细剖析一下,看看究竟为何如此。

首先,我们这里在讨论什么?

在Kubernetes中部署服务时,目标是让这些服务能从外部访问到。外部可能指其他内部服务、外部用户,或者两者皆是。而实现这种可访问性的 “方式” 归根结底在于网络配置。默认情况下,Kubernetes对这种复杂性进行了抽象处理,但当你在裸机层面进行管理时,就需要深入了解其中细节了。

二层网络是传统的以太网式网络通信方式。它在同一广播域(基本上就是你的本地网络)内运行,并使用诸如地址解析协议(ARP)等协议将IP地址映射到MAC地址。可以把它看作是服务通告的 “本地” 选项。

另一方面,边界网关协议(BGP)是一种路由协议,旨在处理不同网络之间的通信。它不局限于在本地网络内工作,而是通告哪些IP地址或子网属于何处 —— 无论是在数据中心内部还是外部。

为何在Kubernet

;