calico 模式
Cross-subnet 是什么?
简单来说,Cross-subnet 是 Calico 网络模式中的一个智能选项,它意味着“仅在跨不同子网时才建立隧道”。
为了更好地理解,我们需要先了解 Calico 的几种主要工作模式:
1. BGP 模式(无封装)
-
工作原理:Calico 使用 BGP 协议,将每个节点上的 Pod 路由信息通告给整个集群的网络设备(如物理交换机或路由器)。这样,网络设备就知道如何直接路由到任何一个 Pod,无需任何封装。
-
优点:高性能,低延迟,因为数据包是原生转发的。
-
缺点:要求底层网络基础设施支持 BGP,并且 Pod IP 在所有节点间是可路由的。在某些云环境或网络策略严格的场景中可能无法使用。
2. IPIP 模式(IP在IP隧道)
-
工作原理:当 Pod 之间的通信需要跨越不同子网时,Calico 会将原始数据包(源PodIP -> 目标PodIP)整个封装在另一个新的 IP 数据包中。这个新数据包的源IP是宿主节点的IP,目标IP是目标Pod所在宿主节点的IP。
-
它有三种子模式:
-
Always:永远启用。无论源Pod和目标Pod是否在同一台宿主机上,或者是否在同一个子网下,所有流量都进行 IPIP 封装。 -
Cross-subnet:跨子网时启用。这是智能模式。只有当通信双方不在同一个物理子网时,才进行 IPIP 封装。如果 Pod 在同一子网的不同节点上,则使用 BGP 直接路由。 -
Never:永不启用。完全禁用 IPIP。
-
3. VXLAN 模式(虚拟可扩展局域网)
-
工作原理:与 IPIP 类似,也是一种隧道技术。它将原始数据包封装在 UDP 包中。同样,它也有
Always、Cross-subnet和Never模式。 -
优点:VXLAN 是一种更现代、更通用的 overlay 网络技术,被广泛支持,并且完美支持 IPv6。
虽然默认的 BGP 全互联(Full-mesh)模式在节点数量不多时工作良好,但如果您的集群规模较大(例如超过100个节点),全互联模式会带来较大的资源开销。在这种情况下,建议配置 BGP 路由反射器(Route Reflector) 来优化路由分发,减少连接数。这需要额外的配置,但与 CrossSubnet 模式本身并不冲突。
浙公网安备 33010602011771号