
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Cilium是开源软件,用于提供和透明地保护应用工作负载(如容器或进程)之间的网络连接与负载均衡。它在L3/4层提供传统网络和安全服务,同时在L7层保护现代应用协议(如HTTP、gRPC和Kafka)。Cilium集成了Kubernetes和Mesos等常见编排框架。
其核心基于名为eBPF的新型Linux内核技术,支持在网络IO、应用套接字和跟踪点等多个集成点动态插入eBPF字节码,以实现安全、网络和可见性逻辑。eBPF具有高效和灵活的特性,更多信息可访问eBPF.io。
Cilium社区为最新的三个主要版本维护次要稳定版本,更早的主要版本稳定版视为EOL(生命周期结束)。升级到新主要版本请参考https://docs.cilium.io/en/stable/install/upgrade/%E3%80%82
以下是当前维护的发布分支及其最新次要版本、对应镜像拉取标签和发布说明:
| 版本分支 | 发布日期 | 镜像标签 | 发布说明 | 公告 |
|---|---|---|---|---|
| https://github.com/cilium/cilium/tree/v1.8 | 2020-09-30 | docker.io/cilium/cilium:v1.8.4 | https://github.com/cilium/cilium/releases/tag/v1.8.4 | https://cilium.io/blog/2020/06/22/cilium-18 |
| https://github.com/cilium/cilium/tree/v1.7 | 2020-09-30 | docker.io/cilium/cilium:v1.7.10 | https://github.com/cilium/cilium/releases/tag/v1.7.10 | https://cilium.io/blog/2020/02/18/cilium-17 |
| https://github.com/cilium/cilium/tree/v1.6 | 2020-09-30 | docker.io/cilium/cilium:v1.6.12 | https://github.com/cilium/cilium/releases/tag/v1.6.12 | https://cilium.io/blog/2019/08/20/cilium-16 |
能够保护REST/HTTP、gRPC和Kafka等现代应用协议。传统防火墙工作在L3/4层,特定端口上的协议要么完全信任要么完全阻止。Cilium允许基于单个应用协议请求进行过滤,例如:
GET且路径为/public/.*的请求,拒绝其他所有请求。service1在Kafka主题topic1上生产消息,service2消费topic1,拒绝其他所有Kafka消息。X-Token: [0-9]+。最新支持的协议和使用示例请参见文档中的http://docs.cilium.io/en/stable/policy/#layer-7%E9%83%A8%E5%88%86%E3%80%82
现代分布式应用依赖容器等技术实现部署敏捷性和按需扩展,导致短时间内启动大量容器。典型容器防火墙通过源IP地址和目标端口过滤工作负载,这需要集群中任何容器启动时都操作所有服务器上的防火墙,限制了扩展性。
为避免此问题,Cilium为共享相同安全策略的应用容器组分配安全身份,该身份与应用容器发出的所有网络数据包关联,允许在接收节点验证身份。安全身份管理通过键值存储执行。
标签基于的安全是集群内部访问控制的首选工具。为保护与外部服务的访问,支持传统的基于CIDR的入口和出口安全策略,可限制应用容器与特定IP范围的访问。
一个简单的扁平L3网络,能够跨多个集群连接所有应用容器。IP分配通过主机范围分配器保持简单,意味着每个主机无需主机间协调即可分配IP。
支持以下多节点网络模型:
覆盖网络(Overlay):基于封装的虚拟网络,跨所有主机。目前内置VXLAN和Geneve支持,但可启用Linux支持的所有封装格式。
使用场景:此模式基础设施和集成要求最低,几乎适用于任何网络环境,仅需主机间IP连接(通常已满足)。
原生路由(Native Routing):使用Linux主机的常规路由表。网络需能够路由应用容器的IP地址。
使用场景:适用于高级用户,需了解底层网络基础设施。适用于:
Cilium为应用容器之间以及到外部服务的流量实现分布式负载均衡,能够完全替代kube-proxy等组件。负载均衡通过eBPF使用高效哈希表实现,支持几乎无限扩展。
南北向负载均衡:eBPF实现针对高性能优化,可附加到XDP(快速数据路径),支持直接服务器返回(DSR)和Maglev一致性哈希(当负载均衡不在源主机执行时)。
东西向负载均衡:在Linux内核套接字层(如TCP连接时)执行高效的服务到后端转换,避免低层每包NAT操作开销。
Cilium通过基于EDT(最早 departure 时间)的高效速率限制,使用eBPF为节点出口的容器流量实现带宽管理。与带宽CNI插件等使用的传统HTB(层次令牌桶)或TBF(令牌桶过滤器)相比,可显著降低应用传输尾部延迟,避免多队列NIC下的锁定问题。
获取可见性和排查问题是任何分布式系统运行的基础。除了tcpdump和ping等传统工具,Cilium提供更优的故障排除工具,包括:
Cilium适用于以下场景:
Kubernetes环境部署
使用Helm安装(推荐):
bashhelm repo add cilium https://helm.cilium.io/ helm install cilium cilium/cilium --version 1.14.0 --namespace kube-system
独立Docker环境
bashdocker run --privileged --net=host -v /var/run/cilium:/var/run/cilium docker.xuanyuan.run/cilium/cilium:v1.8.4 agent --debug
Berkeley Packet Filter(BPF)是Linux内核字节码解释器,最初用于过滤网络数据包(如tcpdump和套接字过滤)。BPF指令集和架构近期已大幅改进,增加哈希表和数组等数据结构用于状态保持,以及支持数据包修改、转发、封装等操作。LLVM编译器后端允许用C编写程序并编译为BPF指令,内核验证器确保BPF程序安全运行,JIT编译器将BPF字节码转换为CPU架构特定指令以实现原生执行效率。BPF程序可在内核多个挂钩点运行,如入站/出站数据包、系统调用、kprobes、uprobes、跟踪点等。
BPF随Linux版本持续发展,Cilium利用BPF执行核心数据路径过滤、修改、监控和重定向,要求Linux内核版本4.8.0或更高(最新稳定内核为4.14.x)。
许多Linux发行版(如CoreOS、Debian、Docker的LinuxKit、Fedora、openSUSE和Ubuntu)已预装>=4.8.x的内核。可通过uname -a检查内核版本,如需更新内核,请参考发行版文档安装4.9.x或更高版本。
XDP是进一步发展,允许从网络驱动程序运行特定类型的BPF程序,直接访问数据包的DMA缓冲区,是软件栈中最早可附加程序的点,实现Linux内核网络数据路径中的可编程高性能数据包处理。
更多面向开发者的BPF和XDP信息,请参见http://docs.cilium.io/en/stable/bpf/%E3%80%82
加入Cilium https://cilium.herokuapp.com/%EF%BC%8C%E4%B8%8E%E5%BC%80%E5%8F%91%E8%80%85%E5%92%8C%E5%85%B6%E4%BB%96%E7%94%A8%E6%88%B7%E4%BA%A4%E6%B5%81%E3%80%82%E8%BF%99%E6%98%AF%E5%AD%A6%E4%B9%A0Cilium%E3%80%81%E6%8F%90%E9%97%AE%E5%92%8C%E5%88%86%E4%BA%AB%E7%BB%8F%E9%AA%8C%E7%9A%84%E7%90%86%E6%83%B3%E5%9C%BA%E6%89%80%E3%80%82
参见https://docs.cilium.io/en/stable/community/#special-interest-groups%E8%8E%B7%E5%8F%96%E6%89%80%E6%9C%89SIG%E5%88%97%E8%A1%A8%E5%8F%8A%E5%85%B6%E4%BC%9A%E8%AE%AE%E6%97%B6%E9%97%B4%E3%80%82
Cilium用户空间组件采用Apache License, Version 2.0许可。BPF代码模板采用General Public License, Version 2.0许可。
注:本文档中的链接指向Cilium官方英文资源,实际使用时可参考https://docs.cilium.io/zh/stable/%EF%BC%88%E5%A6%82%E5%8F%AF%E7%94%A8%EF%BC%89%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务