Skip to content

GlobalBGP 网络

Huanyu He edited this page Apr 17, 2023 · 11 revisions

GlobalBGP 是一种特殊的 network type,和 Overlay Network 一样,GlobalBGP 的 nodeSelector 字段必须为空,并且每个集群只能有一个 GlobalBGP 的 Network,集群内所有 type 为 Underlay且 mode 为 BGP 的 Network 会自动成为该 Network 的子集,也就是说,GlobalBGP 的网络域为集群内所有 BGP 网络域之“和”

apiVersion: networking.alibaba.com/v1
kind: Network
metadata:
  name: global-bgp
spec:
  type: GlobalBGP

GlobalBGP Network 会有自己的 Subnet,与其对应的 BGP Network 的 Subnet 相互独立。对于 GlobalBGP Subnet 的 Pod IP,hybridnet BGP server 会有不同的 BGP 宣告行为

  1. 对于每个本节点存在的 Pod 地址,hybridnet BGP server 会宣告一条路由信息,路由信息中的下一跳地址为本节点地址,目标网段为 /32(或者 /128,如果是 ipv6)类型的网段(不携带 NO_EXPORT 的社区属性)
  2. 对于 GlobalBGP 的 Subnet 网段,hybridnet BGP server 不宣告路由信息

因此,每个 GlobalBGP 的 Pod IP 可以在集群内所有属于 BGP Network 的节点上漂移。如果一个节点属于 BGP Network,并且节点上存在 GlobalBGP 的 Pod(IP 地址),则这个节点所属的 BGP Network 在对应的 GlobalBGP Pod IP 被释放之前无法被删除

BGP Network 不同,由于 GlobalBGP Network 对于路由信息的聚合不提供任何的保证,并不推荐用来进行大规模部署,因为在大规模场景下零散的路由规则(跟 Pod 数目成正比)很有可能会对整个基础网络环境产生影响。但 GlobalBGP Network 可以做为 BGP Network 的扩展能力有限度地使用,以基于 BGP 网络协议的动态行为提供集群维度的 Pod IP 漂移能力(结合 指定 network type 分配 IP 的能力)