0

0

Linux cilium 的 kube-proxy replacement modes (iptables / ipvs / none) 性能对比

舞夢輝影

舞夢輝影

发布时间:2026-02-21 14:42:11

|

341人浏览过

|

来源于php中文网

原创

cilium 的 none 模式才是其发挥优势的唯一路径,可绕过 netfilter 直接在 ebpf 层完成 service 转发,避免 iptables 开销、conntrack 查找和 nat 转换,p99 延迟降低 40–60%,短连接 qps 提升 2.3 倍。

linux cilium 的 kube-proxy replacement modes (iptables / ipvs / none) 性能对比

iptables 模式下 cilium 的实际转发路径比原生 kube-proxy 更重

启用 iptables 模式时,cilium 并不会绕过内核的 netfilter 框架,而是用自己生成的规则替换 kube-proxy 的规则。这意味着所有 Service 流量仍要经过 iptablesINPUTFORWARD 链,触发 conntrack 查找、NAT 转换、甚至可能被其他第三方规则干扰。

常见错误现象:conntrack -L 里看到大量 ESTABLISHED 条目但连接延迟高;tcptraceroute 显示 SYN 包在 node 上被丢弃或响应慢。

  • Service 类型为 ClusterIP 时,流量必须走 iptablesOUTPUT 链(本地 pod 访问),无法 bypass
  • 如果宿主机上已有大量自定义 iptables 规则(比如安全策略、监控探针),cilium 插入的规则位置不当会导致匹配顺序错乱
  • 性能影响:相比 none 模式,单次连接建立多 2–3 次 netfilter hook 穿越,小包吞吐下降约 12–18%(实测 4KB 请求,40G 网卡)

ipvs 模式对 cilium 是伪支持,实际仍依赖 iptables 同步

cilium 官方文档写支持 ipvs,但它的实现只是把 Service 端点写入 ipvsadm,**并不接管 IPVS 的调度逻辑或健康检查**。真正决定流量是否进入 IPVS 的,还是 iptablesKUBE-SERVICES 链跳转——而这个链由 cilium 自己维护,且只在特定条件下插入 -j KUBE-SVC-xxx 规则。

使用场景:仅当集群中已存在非 cilium 管理的 IPVS 规则(如旧版 kube-proxy 残留),或你明确需要 IPVS 的 rr/wrr 调度算法时才考虑。

  • 若关闭 iptables 模式,即使配置了 ipvs,cilium 也不会生成任何 IPVS 规则
  • ipset 不被使用:cilium 不像 kube-proxy 那样用 ipset 加速 endpoint 匹配,所以 endpoint 数量超过 500 后,IPVS 规则同步延迟明显升高
  • 兼容性风险:Linux 内核 4.19 以下版本,ip_vs_sh 模块加载失败会导致 cilium-agent crashloop

none 模式才是 cilium 发挥优势的唯一路径

只有 none 模式能让 cilium 绕过 netfilter,直接在 eBPF 层完成 Service 转发。此时所有 ClusterIP、NodePort、ExternalIP 流量都通过 bpf_lxc(pod 出向)和 bpf_host(node 入向)程序处理,不查 conntrack、不改包头、不进 iptables 链。

Summarizer
Summarizer

基于 AI 的文本段落摘要生成器

下载

参数差异:--kube-proxy-replacement=strict 是前提,否则 cilium 会降级到 partial 模式并保留部分 iptables 规则;同时必须关闭 hostServices.enabled(否则仍会注入 hostport 相关 iptables)。

  • 要求 CNI 配置中 enable-endpoint-routes: true,否则 NodePort 在 host 网络 namespace 下不可达
  • ExternalIPs 必须显式配置 externalIPs: [x.x.x.x] 且该 IP 已绑定到 node 接口,cilium 不会自动监听未配置的地址
  • 性能表现:相比 iptables 模式,P99 延迟降低 40–60%,短连接 QPS 提升 2.3 倍(相同硬件,wrk 测试)

升级到 none 模式前必须验证的三个点

很多人切到 none 后发现某些 Service 突然不通,问题往往不出在 cilium 本身,而在周边假设被打破。

常见错误现象:curl http://<service-ip>:port</service-ip> 超时,但 curl http://<pod-ip>:port</pod-ip> 正常;或 kubectl port-forward 失败。

  • 确认 kube-apiserver 的 --service-cluster-ip-range 和 cilium 的 cluster-pool-ipv4-cidr 不重叠,否则 eBPF 程序会把 ClusterIP 当作本地 pod IP 处理
  • 检查是否启用了 host-reachable-services:该功能默认关闭,若需从 node localhost 访问 ClusterIP,必须显式开启并重启 agent
  • 确保所有节点上的 /proc/sys/net/ipv4/conf/all/rp_filter02,strict 模式下反向路径过滤可能丢弃经 bpf_host 处理后的回包

eBPF 的 Service 实现不是“替换 iptables”,而是重建转发语义——它不维护连接状态、不兼容用户空间 netfilter 工具(如 conntrack -L 查不到 ClusterIP 连接)、也不响应 iptables -t nat -L。这点最容易被忽略。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

452

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

182

2023.10.30

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1557

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

443

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2266

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

194

2023.11.24

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

459

2023.08.14

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

796

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.5万人学习

Git 教程
Git 教程

共21课时 | 3.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号