Overview
本文将探讨 Kubernetes 中的网络模型,以及对各种网络模型进行分析。
Underlay Network Model
什么是 Underlay Network
底层网络 Underlay Network 顾名思义是指网络设备基础设施,如交换机,路由器, DWDM 使用网络介质将其链接成的物理网络拓扑,负责网络之间的数据包传输。
Underlay network topology
underlay network 可以是二层,也可以是三层;二层的典型例子是以太网 Ethernet,三层是的典型例子是互联网 Internet。
而工作于二层的技术是 vlan,工作在三层的技术是由 OSPF, BGP 等协议组成。
这种模型下典型的有 flannel 的 host-gw 模式与 calico BGP 模式。
flannel host-gw
flannel host-gw 模式中每个 Node 需要在同一个二层网络中,并将 Node 作为一个路由器,跨节点通讯将通过路由表方式进行,这样方式下将网络模拟成一个underlay network。
Notes:因为是通过路由方式,集群的 cidr 至少要配置 16,因为这样可以保证,跨节点的 Node 作为一层网络,同节点的 Pod 作为一个网络。如果不是这种用情况,路由表处于相同的网络中,会存在网络不可达
Calico BGP
BGP(Border Gateway Protocol)是去中心化自治路由协议。它是通过维护 IP 路由表或前缀表来实现 AS (Autonomous System)之间的可访问性,属于向量路由协议。
与 flannel 不同的是,Calico 提供了的 BGP 网络解决方案,在网络模型上,Calico 与 Flannel host-gw