凡心所向,素履以往;生如逆旅,一苇以航

Cilium

Cilium 是一个基于 eBPF 的云原生网络与安全项目,主要用于 Kubernetes 集群中的容器网络管理、网络安全和可观察性。它由 Isovalent 公司主导开发,已经成为 CNCF 的孵化项目,广泛应用于生产环境。


🌐 一句话解释

Cilium 是使用 eBPF 技术实现的 Kubernetes CNI 插件,提供高性能、可扩展的网络、安全策略控制和网络可观察能力。


🧠 核心技术:eBPF

eBPF(Extended Berkeley Packet Filter)是一种 Linux 内核技术,允许开发者在内核中安全、高效地运行自定义代码,而不需要修改内核源代码。

Cilium 正是通过 eBPF 实现以下核心功能:

  • 容器之间的网络连接(CNI)
  • 负载均衡(替代 kube-proxy)
  • 网络策略(NetworkPolicy)
  • 服务网格功能(Service Mesh,无 sidecar 模式)
  • 深度可观察性(Hubble 组件)

🚀 Cilium 的主要功能

功能描述
CNI 插件负责 Pod 网络接口的创建和路由配置
kube-proxy 替代使用 eBPF 实现负载均衡,无需 iptables,提高性能
网络策略精细化地控制 Pod 到 Pod 的流量,支持 L3/L4/L7 层
多集群通信(ClusterMesh)实现多 Kubernetes 集群间的网络互通
可观察性(Hubble)实时监控流量路径、策略应用、服务通信,图形化展示
服务网格功能提供透明代理功能(HTTP/gRPC 等),替代 Istio 等传统服务网格工具

✅ Cilium 优势

  • 高性能: 基于 eBPF,不依赖 iptables,性能更优
  • 可扩展性强: 内核态运行逻辑,可按需动态加载功能
  • 可观测性强: 搭配 Hubble,可以看到详细的流量路径和策略应用
  • 安全性高: 支持精细粒度的 L3-L7 网络策略
  • 无需 Sidecar: 可实现部分服务网格功能,减轻资源消耗

📦 Cilium 与其他组件的关系

类别对比对象Cilium 的角色
网络插件(CNI)Flannel, CalicoCilium 可替代 Flannel、Calico 等成为主流 CNI
kube-proxyiptables/kube-proxyCilium 可完全替代 kube-proxy
服务网格Istio, LinkerdCilium 提供轻量级服务网格能力(可选)

📷 架构图(简化)

+--------------------------+
|     Kubernetes API       |
+-----------+--------------+
            |
            v
   +--------+---------+
   | Cilium Agent     | <---- 管理 eBPF 程序
   +------------------+
            |
    +-------+--------+
    | Linux Kernel    | <-- eBPF 插入点(XDP、tc、cgroup 等)
    +-----------------+
            |
        网络流量处理

📘 官方资源


Kubernetes 部署见

https://docs.jansora.com/cloud/cloud-native/kubernetes/install-k8s/kubernetes-cilium-config

评论栏