Cilium是一款开源软件,旨在为应用工作负载(如应用容器或进程)提供网络连接和负载均衡,并透明地保障其安全性。它在网络层(L3/4)提供传统网络和安全服务,同时在应用层(L7)保护现代应用协议(如HTTP、gRPC和Kafka)。Cilium已集成到Kubernetes、Mesos等常见编排框架中。
Cilium的核心基础是名为BPF的新型Linux内核技术,支持在网络IO、应用套接字、跟踪点等多个集成点动态插入BPF字节码,以实现安全、网络和可见性逻辑。BPF具有高效和灵活的特性。
能够保护REST/HTTP、gRPC和Kafka等现代应用协议。传统防火墙在L3/4运行,特定端口上的协议要么完全受信任,要么被完全阻止。Cilium允许对单个应用协议请求进行过滤,例如:
GET且路径为/public/.*的HTTP请求,拒绝其他所有请求。service1在Kafka主题topic1上生产消息,service2在topic1上消费消息,拒绝其他所有Kafka消息。X-Token: [0-9]+。现代分布式应用依赖应用容器等技术实现部署敏捷性和按需扩展,导致短时间内启动大量应用容器。典型的容器防火墙通过过滤源IP地址和目标端口来保护工作负载,这需要在集群中任何地方启动容器时都操作所有服务器上的防火墙,限制了扩展性。
为避免这种情况,Cilium为共享相同安全策略的应用容器组分配安全身份,该身份与应用容器发出的所有网络数据包相关联,允许在接收节点验证身份。安全身份管理通过键值存储执行。
基于标签的安全是集群内部访问控制的首选工具。为保护与外部服务的进出访问,支持传统的基于CIDR的入口和出口安全策略,允许将应用容器的进出访问限制在特定IP范围。
一个简单的扁平L3网络,能够跨多个集群连接所有应用容器。通过使用主机范围分配器简化IP分配,意味着每个主机可以分配IP而无需主机间协调。
支持以下多节点网络模型:
为应用容器之间以及到外部服务的流量提供分布式负载均衡。负载均衡使用BPF通过高效哈希表实现,支持几乎无限扩展,且如果负载均衡操作不在源主机上执行,支持直接服务器返回(DSR)。注意:负载均衡需要启用连接跟踪,这是默认设置。
获取可见性和排除问题的能力是任何分布式系统运行的基础。Cilium提供以下工具:
Cilium适用于需要在容器化或微服务环境中实现网络连接、安全防护和负载均衡的场景,特别是:
uname -a检查内核版本Kubernetes环境部署
Cilium通常作为Kubernetes网络插件部署,推荐使用Helm:
bash# 添加Cilium Helm仓库 helm repo add cilium https://helm.cilium.io/ # 安装Cilium helm install cilium cilium/cilium --version 1.14.0 --namespace kube-system
手动部署(Docker)
bash# 运行Cilium容器 docker run -d --name cilium \ --privileged \ --net=host \ --restart=always \ -v /var/run/cilium:/var/run/cilium \ -v /lib/modules:/lib/modules \ -v /sys/fs/bpf:/sys/fs/bpf \ cilium/cilium:latest
Cilium的主要配置通过环境变量或配置文件进行,关键配置参数包括:
CILIUM_CLUSTER_NAME:集群名称,用于标识Cilium集群CILIUM_K8S_API_SERVER:Kubernetes API服务器地址CILIUM_IPAM_MODE:IP地址分配模式(如host-scope、kubernetes)CILIUM_TUNNEL:隧道模式(如vxlan、geneve或disabled表示原生路由)详细配置可参考官方文档。
Berkeley Packet Filter(BPF)是Linux内核字节码解释器,最初用于过滤网络数据包(如tcpdump和套接字过滤器)。BPF指令集和架构最近经过重大改进,增加了哈希表、数组等数据结构用于状态保持,以及数据包修改、转发、封装等操作。LLVM编译器后端允许用C编写程序并编译为BPF指令,内核验证器确保BPF程序安全运行,JIT编译器将BPF字节码转换为CPU架构特定指令以实现原生执行效率。BPF程序可在内核的多个挂钩点运行,如入站数据包、出站数据包、系统调用、kprobes、uprobes、跟踪点等。
Cilium利用BPF执行核心数据路径过滤、修改、监控和重定向,需要Linux内核4.8.0或更高版本的BPF功能。
XDP是进一步的演进,允许在网络驱动程序中运行特定类型的BPF程序,直接访问数据包的DMA缓冲区,是软件栈中最早可附加程序的点,实现Linux内核网络数据路径中的可编程高性能数据包处理。
加入Cilium Slack频道,与Cilium开发人员和其他用户交流。
有关所有SIG及其会议时间的列表,请参见特别兴趣小组。
Cilium用户空间组件采用Apache License, Version 2.0许可。BPF代码模板采用General Public License, Version 2.0许可。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务