当前的位置是:主页 >> 科技生活

Calico全面解读

2026-10-15

浏览量:次

Calico 全面解读

摘要

Calico 是 Tigera 公司开源的云原生 CNI 容器网络 + 分布式网络安全一体化方案,核心思想:用三层路由替代传统二层虚拟交换机,依托 Linux 内核 + BGP 协议,为 Pod、虚拟机、裸金属主机提供网络连通与访问控制;同时完整支持 Kubernetes NetworkPolicy,并扩展更强的企业级安全策略。 Calico 不止是网络插件,是网络连通 + IP 地址管理 + 分布式防火墙 + 可观测的平台;分为开源版 Calico Open Source、企业版 Calico Enterprise、SaaS 托管 Calico Cloud,是 K8s 生产环境最主流 CNI 之一Calico。Calico全面解读

一、核心架构:组件分工

Calico 采用控制平面 + 数据平面分离架构。

控制平面组件

Felix(Agent,每节点必跑) Calico 核心守护进程。负责在宿主机内核编程:veth 虚拟网卡、内核路由表、iptables/eBPF ACL 访问控制规则;监控网络端点状态,上报信息;所有网络策略最终由 Felix 下发到内核。

BIRD(BGP 客户端,每节点) BGP 协议实现,将本机 Pod 网段路由发布给集群其他节点。小规模集群默认 Full Mesh 全互联;大规模集群使用Route Reflector 路由反射器,降低 BGP 连接数量,解决全互联规模瓶颈。

Typha 代理组件,解耦 Felix 与 etcd,大量节点集群下减轻 etcd 压力,将订阅数据批量下发给 Felix。

calico-kube-controllers 监听 K8s 资源(Pod、Namespace、NetworkPolicy),把 K8s 资源转换为 Calico 内部模型。

Calico CNI 插件 + IPAM 插件 K8s 创建 Pod 时调用 CNI:创建 veth pair、分配 PodIP、配置网卡;IPAM 负责 IP 地址池管理,按节点批量分配 IP 块,避免 IP 冲突。

数据存储 etcd 保存全局网络元数据:IP 池、路由信息、网络策略、端点信息;可以复用 K8s etcd,也可独立部署。

数据平面(可插拔,重点)

Calico 支持多数据平面,可按需切换:

iptables(传统默认):Linux iptables 实现 ACL,稳定成熟;高并发场景 CPU 开销大。

eBPF(现代主推):内核 eBPF 程序,性能更强、更低延迟,支持直接替换 kube-proxy,实现 Service 负载均衡,减少 iptables 链式规则爆炸,生产大规模集群首选。

nftables、VPP、Windows HNS:适配 Windows 节点、高性能用户态转发场景Tigera。

二、三种网络工作模式(核心)

1. BGP Underlay 非隧道模式(性能最优,数据中心首选)

不做数据包封装。每个节点运行 BIRD,互相交换 Pod 网段路由;物理交换机学习 Pod 路由,Pod 数据包直接三层路由转发,无封装开销。

前提:底层物理网络支持 BGP,节点三层互通。优点:性能最高,无隧道封包解包损耗;便于排查网络抓包。缺点:公有云底层网络通常不允许 BGP 广播 Pod 网段,公有云一般不能直接用。

2. IPIP Overlay 隧道模式

IP-in-IP 封装:Pod 原始 IP 包外面再套一层宿主机 IP 头,通过隧道跨节点传输。适合底层网络不支持 BGP 的环境;Azure 云默认屏蔽 IPIP。

开销:封装带来少量 CPU 损耗。支持cross-subnet模式:同子网节点直接 BGP 转发,跨子网才启用 IPIP 隧道,兼顾性能与兼容性。

3. VXLAN Overlay 隧道模式

二层隧道封装,公有云(Azure)最常用,底层网络无需 BGP;数据包封装开销比 IPIP 更大。

典型组合:Canal 方案 = Flannel (VXLAN) + Calico(网络策略),Flannel 负责网络连通,Calico 只做安全策略。

一句话区分:BGP 无隧道性能最好;IPIP 轻量隧道;VXLAN 兼容性最强。

三、IPAM IP 地址管理

Calico 内置 IPAM,支持 IPv4/IPv6 双栈。

预先定义 IPPool 地址池;

不是 Pod 逐个申请 IP,而是按节点预分配 IP 块(block,默认 / 26,64 个 IP);

节点上新建 Pod 时,直接从本地 IP 块分配 IP,减少 etcd 交互;Pod 删除 IP 回收。支持多 IP 池、按命名空间 / 标签绑定不同地址池,实现多租户 IP 隔离。

四、网络策略(Calico 最大亮点,分布式防火墙)

K8s 原生 NetworkPolicy 能力有限,Calico NetworkPolicy 做了大量扩展,在每台宿主机内核上实现分布式 ACL,不是中心防火墙。

原生支持 K8s NetworkPolicy:命名空间、Pod 标签、IP 块、端口,控制 Ingress 入流量、Egress 出流量。

Calico 扩展策略能力:

Policy Tiers 策略层级:控制策略执行顺序,全局策略优先于命名空间策略;

GlobalNetworkPolicy:集群全局策略,跨命名空间管控;

NetworkSet:IP 集合,批量定义外部网段;

Deny+Log 动作:拒绝流量并日志审计,满足等保 / DevSecOps 审计;

支持选择主机、VM、裸金属端点,策略统一覆盖容器 + 虚拟机。

重要逻辑:路由只管能不能到达;网络策略决定允许不允许访问。就算网络可达,策略依然可以阻断流量,天然实现微服务东西向隔离,是云原生零信任落地核心组件。

五、Pod 通信完整流程

同 Node Pod 通信 Pod 之间通过 veth pair,直接在宿主机内核路由转发,不经过物理网卡。Felix 在本机配置路由与 iptables/eBPF 策略。

跨 Node Pod 通信(BGP 无隧道模式) Pod 发包 → veth pair → 宿主机内核路由表;本机 BIRD 已经学习到目标 Pod 网段路由,数据包直接走物理网络到达目标节点;目标节点内核路由转发到目标 Pod;全程无封装。

跨 Node Pod 通信(IPIP/VXLAN 隧道) 数据包进入隧道封装 → 宿主机 IP 作为外层包头,物理网络传输;对端节点收到后解封装,取出原始 Pod 数据包,路由转发到目标 Pod。

Service 流量:eBPF 模式下 Calico 可直接实现 Service 负载均衡,替代 kube-proxy,减少 iptables 规则数量,大规模集群性能提升明显。

六、核心优势

一体化:网络连通 + IPAM + 分布式防火墙,一套组件搞定网络与安全;

高性能:BGP Underlay 无隧道方案性能接近物理网络;eBPF 进一步提升吞吐、降低延迟;

安全能力强:原生支持微服务东西向流量隔离,策略基于标签,适配 Pod 动态漂移;支持流量日志,适配 DevSecOps 安全审计;

多负载统一管控:Pod、虚拟机 (KubeVirt)、裸金属主机共用同一套网络策略;

跨集群、混合云支持,支持 BGP 对接物理交换机,打通容器网络与传统数据中心网络;

CNI 标准兼容,适配几乎所有 K8s 发行版。

七、局限性与风险

BGP Full Mesh 模式规模瓶颈:节点超过 100 个,BGP 全互联连接数爆炸,必须部署 Route Reflector;

隧道模式(IPIP/VXLAN)存在封包 CPU 开销;

iptables 模式集群规模上万 Pod 时,规则量巨大,内核开销上涨,推荐 eBPF 数据平面;

运维门槛更高:需要理解 BGP、路由、Linux 内核网络,相比 Flannel 更复杂;

公有云环境限制:很多公有云不允许 BGP 广播 Pod 网段,只能用 VXLAN/IPIP 隧道模式。

八、适用场景

✅ 适合:企业私有数据中心、大规模 K8s 集群、微服务需要东西向隔离、零信任安全、混合云、容器 + 虚拟机混合负载、需要网络流量审计(DevSecOps 场景)。 ❌ 不适合:极简小型测试集群,只想快速搭建集群、无安全隔离需求(Flannel 更简单)。

九、主流版本演进趋势

eBPF 成为默认主推数据平面,逐步替代传统 iptables;支持 kube-proxy-offload,优化 Service 性能;

增强网络可观测:流日志、流量可视化、威胁检测,企业版集成入侵检测;

多集群网络统一管理,跨集群 Pod 通信;

加强安全合规:策略审计日志,适配等保、软件供应链安全、DevSecOps 流水线,网络访问策略变更可审计留痕;

支持 IPv6、双栈,支持 WireGuard 加密 Pod 之间流量。

十、Calico 与 DevSecOps 结合(承接上一篇 DevSecOps 内容)

Calico 是云原生运行时网络安全的关键载体:

网络策略左移:在 CI/CD 流水线预校验 NetworkPolicy 语法、策略冲突;

运行时分布式防火墙,阻断 Pod 非法横向渗透(容器逃逸、漏洞横向移动);

流量日志、审计日志,作为安全证据,满足等保、CRA 等合规;

结合告警,识别异常东西向流量,作为容器入侵检测基础。

总结

Calico 的核心创新:把传统数据中心 BGP 路由 + 分布式防火墙下沉到宿主机内核,为容器构建扁平三层网络。它不止是 CNI 网络插件,更是云原生零信任网络安全底座。选型核心判断:私有数据中心优先 BGP Underlay;公有云优先 VXLAN;大规模集群优先 eBPF 数据平面;有微服务隔离、安全审计需求优先选择 Calico。

标签 Calico
友情链接