-
产品及方案 产品及方案
-
数据驱动型组织通过体系化的方法构建全域数据能力,实现数据驱动运营,重塑组织生产力
- 行业方案
- 典型方案
- 产品
-
数据驱动型组织
- 服务与支持
- 社区
- 合作伙伴
- 关于爱数
请选择咨询类型
扫码关注
爱数技术支持中心公众号
我们将在 24 小时之内联系你。
Calico在小规模集群中可以直接互联,在大规模集群中可以通过额外的BGP route reflector来完成。此外,Calico基于iptables还提供了丰富的网络策略,实现了Kubernetes的Network Policy策略,提供容器间网络可达性限制的功能。
Calico 架构及BGP实现
BGP是互联网上一个核心的去中心化自治路由协议,它通过维护IP路由表或“前缀”表来实现自治系统AS之间的可达性,属于矢量路由协议。不过,考虑到并非所有的网络都能支持BGP,以及Calico控制平面的设计要求物理网络必须是二层网络,以确保 vRouter间均直接可达,路由不能够将物理设备当作下一跳等原因,为了支持三层网络,Calico还推出了IP-in-IP叠加的模型,它也使用Overlay的方式来传输数据。IPIP的包头非常小,而且也是内置在内核中,因此理论上它的速度要比VxLAN快一点 。Calico 3.x的默认配置使用的是IPIP类型的传输方案而非BGP。
Calico的系统架构如图所示:
Calico主要由Felix、Orchestrator Plugin、etcd、BIRD和BGP Router Reflector等组件组成。
AnyShare Family 7中的Calico方案
AnyShare Family 7中使用的Calico为3.x版本,所以默认也是使用的IPIP模式,考虑到并非所有的网络都能支持BGP,所以使用的是IPIP/BGP混合的模式,具体如下:
这里ipipMode为CrossSubnet模式, 即IPIP与BGP的混合模式,同子网内路由采用BGP模式,跨子网时采用IPIP模式。
开启IPIP模式时,网络设备中会增加一个tunl0,增加了一个隧道的网卡:
此时的网络模型如下图,Pod 1访问Pod 2大致流程如下:
可以看出,Calico不使用overlay网络,而是在3层网络上,该网络使用BGP路由协议在主机之间路由数据包。这意味着当宿主机在同一网段时,数据在主机之间移动时,不需要将数据包包装在额外的封装层中。BGP路由机制可以本地引导数据包,而无需额外在流量层中打包流量从而在性能上拥有更大的优势。
除了性能优势之外,在出现网络问题时,还可以用更常规的方法进行故障排除。虽然使用VXLAN等技术进行封装也是一个不错的解决方案,但该过程处理数据包的方式同场难以追踪。使用Calico,标准调试工具可以访问与简单环境中相同的信息,从而更容易进行调试和管理。
除了网络连接外,Calico还以其先进的网络功能而闻名。 网络策略是其最受追捧的功能之一。此外,Calico还可以与服务网格Istio集成,以便在服务网格层和网络基础架构层中解释和实施集群内工作负载的策略。这意味着用户可以配置强大的规则,描述pod应如何发送和接受流量,提高安全性并控制网络环境。
请就本文对您的益处进行评级: