一文读懂Cilium:下一代Kubernetes网络方案

Cilium 是一个开源的云原生网络和安全解决方案,专为 Kubernetes 等容器编排平台设计,简单来说其主要作用如下:

cilium功能1-替代kube-proxy

k8s的架构图如下
一文读懂Cilium:下一代Kubernetes网络方案
当我们访问service的时候,kube-proxy会利用iptables/ipvs规则把请求转发到后端的pod。传统的 kube-proxy大量依赖 iptables 规则进行服务代理和网络策略。

iptables会为每个服务和端点创建大量的 iptables 规则。当服务数量和端点数量增加时,iptables 链会变得很长。每次数据包到达时,内核都需要线性地遍历这些规则链,直到找到匹配的规则。这意味着随着规则数量的增加,处理每个数据包所需的时间也会线性增加,导致延迟增加和吞吐量下降。这种线性查找的特性使得 iptables 在大规模集群中成为性能瓶颈。

在大规模的 Kubernetes 集群中,Service 数量和 Pod 数量众多,会导致 iptables 规则非常庞大,从而影响性能,这也是为什么 Kubernetes 后来引入了 IPVS 模式来替代 iptables作为大规模集群的默认 kube-proxy 模式。

Cilium 的核心优势之一是它能够利用 eBPF (Extended Berkeley Packet Filter)技术来替换传统的 kube-proxy 组件,从而实现更高效、更灵活的网络和负载均衡。

iptables在规则数量增多时会带来性能开销,eBPF可以在内核中直接实现这些功能,从而完全绕过 iptables 的处理流程,显著提高性能。

eBPF 允许在内核中加载和运行高度优化的程序。当 Cilium 取代 kube-proxy 时,eBPF 程序可以直接在内核数据路径中处理数据包,而无需遍历长长的规则列表。eBPF 通常通过哈希表或其他数据结构来查找服务和端点信息,这些查找操作的时间复杂度是接近常数时间的 (O(1)),吞吐量可达百万级 QPS,延迟低至微秒级。这意味着无论服务和端点数量有多少,处理每个数据包所需的时间都保持大致不变,从而提供了更好的可扩展性和性能。

cilium功能2-作为CNI替代calico

一文读懂Cilium:下一代Kubernetes网络方案
Cilium 作为 Kubernetes 的 CNI(容器网络接口)插件,凭借其基于 eBPF 的技术架构,在性能、安全性和可观测性等方面都具有显著优势:

eBPF 内核级加速:Cilium 利用 eBPF 在内核态直接处理数据包,绕过传统 iptables 的链式规则匹配(O(n) 复杂度),实现 O(1) 复杂度的快速转发,吞吐量可达百万级 QPS,延迟低至微秒级
一文读懂Cilium:下一代Kubernetes网络方案
L3-L7 全栈安全控制:支持基于 HTTP 路径、DNS 查询、TLS SNI 等应用层协议的策略(如“仅允许访问 /api/v1 的 GET 请求”),而 Calico 仅支持 L3/L4(IP 和端口)策略

apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "rule1"
spec:
  description: "Allow HTTP GET /public from env=prod to app=service"
  endpointSelector:
    matchLabels:
      app: service
  ingress:
  - fromEndpoints:
    - matchLabels:
        env: prod
    toPorts:
    - ports:
      - port: "80"
        protocol: TCP
      rules:
        http:
        - method: "GET"
          path: "/public"

内置 Hubble 工具:提供实时网络拓扑图、流量监控和分布式追踪集成(如 Jaeger),无需应用埋点。Calico 需依赖额外工具(如 Prometheus)且功能较基础
一文读懂Cilium:下一代Kubernetes网络方案
多集群与多云支持:通过 Cluster Mesh 实现跨集群网络互联,而 Calico 需依赖 BGP 或手动配置
一文读懂Cilium:下一代Kubernetes网络方案

学习cilium的必要性

高含金量技能储备

Cilium 是 CNCF 毕业项目,已成为企业 Kubernetes 网络方案首选(据2024年调查,58%的K8s生产环境选用Cilium)

解决企业级问题的能力

  • 应对 大规模集群性能瓶颈(万级节点网络优化)
  • 设计 多云/混合云网络架构(Cluster Mesh实践)
  • 满足 金融/医疗等合规场景(透明加密、审计追踪)

cilium认证管理员CCA(Linux Foundation Cilium Certified Associate)是由CNCF与 Linux 基金会共同推出的一项认证。它专为对网络、安全和可观察性感兴趣的平台或云工程师设计,旨在验证持证者在 Cilium 技术栈中的实践能力
一文读懂Cilium:下一代Kubernetes网络方案

相关新闻

                                                                                                                                    RHCE9学习指南全部更新完成,点击阅读