Menu

Calico 以扁平三层网络和高性能安全策略著称,是云原生环境下容器网络与安全治理的主流方案,兼具可扩展性与易用性。

核心特性

Calico 创建和管理一个扁平的三层网络(无需 overlay),每个容器分配可路由 IP,通信无需封包解包,性能损耗小,易排查,便于扩展。

主要特性包括:

小规模可用 BGP client 直连,大规模可用 BGP Route Reflector,所有流量均基于 IP 路由互联。

架构概览

Calico 采用分布式架构,由多个组件协同工作,部分组件为可选。

Calico 架构图 {width=2580 height=1738}

核心组件

Felix

Felix 是 Calico 的核心代理,以 DaemonSet 运行于每个节点,负责接口管理、路由编程、安全策略执行和状态上报。

Calico API Server

提供 Kubernetes 原生 API 接口,支持 kubectl 管理 Calico 资源,集成 RBAC 和审计。

BIRD

BGP Internet Routing Daemon (BIRD) 负责路由发现与分发,节点间通过 BGP 协议同步路由。

Typha

Typha 是可选扩展组件,适用于大规模集群,代理 Felix 与数据存储连接,优化性能。

插件组件

CNI 插件

实现容器网络接口规范,负责 IP 分配、网络接口配置和路由设置。

IPAM 插件

负责 IP 池管理、地址分配与回收。

控制器组件

kube-controllers

监控 Kubernetes API 变化,执行策略、命名空间、节点、端点等控制逻辑。

confd

轻量级配置管理工具,自动同步和更新 BIRD 配置。

数据存储

Calico 支持两种数据存储方式:

Calico 数据存储方式对比

存储方式 优势与适用场景
Kubernetes API Datastore 简化管理、集成 RBAC、审计,适合 Kubernetes 环境
etcd 跨平台、关注点分离、混合多集群/裸机场景

可选组件

Dikastes

服务网格策略执行组件,支持七层策略、Istio 集成和加密认证。

calicoctl

命令行管理工具,支持资源管理、故障诊断和配置导入导出。

数据平面技术

Calico 支持多种高性能数据平面,适应不同场景需求。

eBPF 数据平面

iptables 数据平面

网络策略

Calico 提供强大的网络安全策略能力,兼容原生 NetworkPolicy 并支持扩展策略。

Kubernetes NetworkPolicy

Calico 扩展策略

部署模式

Calico 支持多种 BGP 网络模式和网络拓扑,适应不同规模和架构需求。

BGP 网络模式

网络拓扑

总结

Calico 以高性能、扁平三层网络和灵活安全策略,成为云原生网络与安全的主流方案。其分布式架构、丰富的数据平面和策略能力,适用于多种规模和平台的 Kubernetes 集群。建议结合实际业务需求,合理选择架构和策略,充分发挥 Calico 的优势。

参考文献


Menu