产品派
返回

Cilium 1.20升级Gateway API并开放eBPF数据路径

开源InfoQ 中文站2026/11/2 21:01:58
AI 导读

Cilium 1.20正式发布,重点覆盖Kubernetes网关、eBPF数据路径和无sidecar双向TLS。该版本将Gateway API支持从v1.4提升至v1.6,并让Cilium在CNI、服务网络和网关能力之外,继续扩展统一的流量管理范围。

Gateway API新增ExternalAuth、ListenerSets、CORS过滤器、TCPRoute和UDPRoute。ExternalAuth允许HTTPRoute在请求抵达应用前调用外部授权服务,网关可根据结果放行、跳转登录页或拒绝访问,也能把身份信息请求头传给应用。TCPRoute和UDPRoute则把数据库、DNS等非HTTP流量纳入同一套Kubernetes API,减少对LoadBalancer或NodePort的依赖。ListenerSets允许应用团队在各自命名空间增加监听器,同时由平台团队控制共享网关及可扩展的命名空间,从而缓解新增主机名或端口时的集中变更瓶颈。

这项演进也符合Kubernetes网络社区逐步采用Gateway API、替代已退役Ingress NGINX控制器的方向。亚马逊云科技的负载均衡控制器已支持Gateway API,可通过应用负载均衡器承载HTTP和gRPC,通过网络负载均衡器承载TCP和UDP;Cilium则由同一项目提供CNI、服务网络及网关功能。

Cilium 1.20还把eBPF数据路径开放给第三方插件。云服务商过去需要将自定义监控或网络行为贡献到上游,或长期维护分支;现在插件可作为独立进程单独构建、版本管理和升级,并通过小型自定义资源与gRPC接口连接Cilium。由谷歌开发的Datapath插件让Cilium更接近可扩展的网络操作系统,但该机制仍处于Beta阶段,主要面向熟悉内部实现的运维人员,并可能引发故障或削弱安全性,内部架构变化也可能要求同步修改插件。

Pod数据路径现在可以自动选择。将bpf.datapathMode设为auto后,每个agent启动时会检查主机环境:内核支持时使用netkit,否则回退到传统veth对。netkit要求Linux 6.8及以上,默认模式仍是veth,因此未主动配置不会影响现有部署,也无需因混合内核集群选择不同数据路径而拆分节点池。

针对1.19引入的每节点ztunnel代理,1.20支持在内部证书颁发机构与SPIRE签发的工作负载身份之间选择,并增加注册状态和连接健康度的Prometheus指标。ztunnel通过HBONE隧道建立TLS 1.3连接并提前维持新连接,可避免早期双向认证设计中的首包丢失,同时加密同一节点上Pod之间支持的TCP流量。该方案与Istio ambient模式相似,且基于最初为Istio创建的ztunnel项目;Cilium ztunnel仍为Beta,旧版双向认证已弃用。升级前还需关注旧版双向认证、Kafka支持策略、Envoy Go扩展、自定义CNI配置及部分弃用API的迁移要求。

CiliumKubernetesGateway APIeBPF服务网格

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文