
下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
基本介绍
Calico 是一个开源的网络及网络安全解决方案,主要用于容器、虚拟机、基于本地主机的工作负载之间的网络连接。
Calico 以其性能、灵活性而闻名,是一个功能全面且复杂的网络解决方案,适用于需要高性能、高可扩展性和安全性的容器网络应用场景,支持的平台包括 Kubernetes、OpenShift、Mirantis Kubernetes Engine (MKE)、OpenStack 以及裸机服务。

Calico 的主要特点如下:
Calico 的核心组件如下:

GitHub 地址:https://github.com/projectcalico/calico
Calico 官方文档:https://docs.tigera.io/archive/v3.21/about/about-calico网络模式
1、动态路由模式
动态路由模式(Dynamic Routing)采用 BGP 路由协议,自动学习来自其它 AS 自治系统(在 Kubernetes 中即为集群中其他 Node 节点)上的路由条目,也可以称为 BGP 模式。
如果集群 Node 节点均处于同一个二层网络中、或数量规模较大,建议采用该模式。
BGP(Border Gateway Protocol, 边界网关协议)是一种基于策略的域间路由协议,用于实现网络中不同自治系统(AS)之间的互联互通,其特点是可以自动发现和学习路由条目,并找出最佳路由。
BGP 模式可以细分为以下两种模式:
2、覆盖网络模式
覆盖网络模式(Overlay Network)采用 IPIP 或 VXLAN 协议对底层网络数据报文进行封装,然后通过上层覆盖网络通信。
如果集群 Node 节点处于不同的二层网络中,可能由于到达目标主机的跳数太多导致性能下降,建议采用该模式。
覆盖网络模式可以细分为以下两种模式:


IPIP 模式与 VXLAN 模式对比:
最后,以 Calico 的 VXLAN 模式为例,Pod 流量在 Node 节点间的转发原理大致如下图所示:
