Cilium 1.20:Gateway API ExternalAuth、TCPRoute/UDPRoute、面向 IPv6 的 ENI IPAM 等新特性

Cilium 1.20:Gateway API ExternalAuth、TCPRoute/UDPRoute、面向 IPv6 的 ENI IPAM 等新特性

💡 原文英文,约5700词,阅读约需21分钟。
📝

内容提要

Cilium 1.20 发布,重点扩展 Gateway API 流量管理,支持 ExternalAuth、CORS 及 TCP/UDP 路由;引入数据路径插件,允许云厂商独立扩展 eBPF;新增 AWS ENI IPv6、netkit 自动选择、多池 IPAM 迁移、ztunnel 无边车 mTLS、Kubernetes ClusterNetworkPolicy 和 MCS-API 稳定支持。

🔎

延伸解读

Gateway API 能力扩展:从南北向到 L4 流量

Cilium 1.20 将 Gateway API 从 v1.4 升级到 v1.6,新增 ExternalAuth、CORS 过滤器、ListenerSets 以及 TCPRoute/UDPRoute。这意味着平台团队可以用同一套 API 管理 HTTP、gRPC 以及非 HTTP 的 TCP/UDP 服务,例如数据库、DNS 和游戏服务器。ExternalAuth 允许在请求到达应用前完成认证,支持 302 重定向、401/403 拦截以及身份头注入。对于仍在使用 Ingress NGINX 的用户,现在可以考虑

数据路径插件:云厂商可独立扩展 eBPF

Cilium 1.20 引入数据路径插件(beta),允许第三方代码以独立进程形式扩展 Cilium 的 eBPF 数据路径,无需打补丁或维护分支。插件通过 CiliumDatapathPlugin 自定义资源注册,拥有独立的构建、版本和发布周期,且插件崩溃不会导致 agent 宕机。该特性由 Google 开发,旨在让云厂商能够在不跟随 Cilium 发布节奏的情况下,添加专用的可观测性、安全或网络扩展。

网络与安全增强:IPv6 ENI、netkit 自动选择与 ztunnel

Cilium 1.20 在 AWS ENI IPAM 模式下支持 IPv6(beta),通过前缀委派为节点分配 /80 前缀,使 Pod 获得 VPC 可路由的 IPv6 地址。netkit 自动选择(bpf.datapathMode=auto)让 agent 根据内核版本自动选用 netkit 或 veth,简化混合内核集群的配置。ztunnel 无边车 mTLS 继续推进,支持内部 CA 或 SPIRE,并新增 Prometheus 指标,但仍为 Beta,旧版 Mutual Authentication 已标

运维与规模化改进:IPAM 迁移、策略聚合与 BGP 工具

Cilium 1.20 支持从 cluster-pool IPAM 原地迁移到 multi-pool IPAM,无需重建集群。策略方面,新增 cluster-mesh 实体和 world/remote-node 身份聚合,减少 BPF 策略表条目,提升大规模集群下的策略执行效率。Hubble 现在能为审计裁决关联策略,显示具体允许或拒绝的策略名称。BGP 工具通过 hive-shell 提供 route-policies 和更详细的 peers 输出,但旧的 cilium-dbg bgp 子命令和本地 REST A

Q&A

Cilium 1.20 在 Gateway API 方面有哪些主要更新?

Cilium 1.20 从 Gateway API v1.4 升级到 v1.6,新增 ExternalAuth 过滤器、CORS 过滤器、ListenerSets,以及 TCPRoute 和 UDPRoute 支持,使非 HTTP 流量也能通过 Gateway API 管理。

Cilium 1.20 如何支持 AWS ENI IPAM 的 IPv6?

Cilium 1.20 在 ENI IPAM 模式下支持 IPv6(Beta)。Operator 通过 Prefix Delegation 为每个节点的 ENI 附加一个 IPv6 /80 前缀,Agent 从中分配 Pod 地址。启用方式为设置 ipam.mode=eni、eni.enabled=true 和 ipv6.enabled=true。

Cilium 1.20 的 datapath 插件是什么?有什么好处?

Datapath 插件(Beta)允许第三方代码以独立进程的形式扩展 Cilium 的 eBPF 数据路径,无需修改或 fork Cilium。插件独立构建、版本化和升级,崩溃不会影响 Agent,便于云厂商独立创新。

Cilium 1.20 如何实现按 Pod 禁用源 IP 验证?

需要两级注解:首先集群管理员为命名空间添加 config.cilium.io/delegate-source-ip-verification: "true",然后 Pod 所有者才能为特定工作负载添加 config.cilium.io/disable-source-ip-verification: "true" 来禁用源 IP 验证。

Cilium 1.20 中 ztunnel 提供了什么功能?

ztunnel 提供无 sidecar 的 mTLS 服务网格,为 Pod 间流量提供认证和加密。它使用 TLS 1.3 over HBONE 隧道,避免首包丢失,并加密同节点 Pod 间的 TCP 流量。证书颁发机构可配置为 internal 或 spire 模式。

Cilium 1.20 对 Kubernetes ClusterNetworkPolicy 的支持如何?

Cilium 1.20 实现了 ClusterNetworkPolicy,它是集群范围的分层策略,包含 Admin 层(优先于命名空间 NetworkPolicy)和 Baseline 层(可被命名空间策略覆盖)。支持基于命名空间或 Pod 的选择器,以及 Accept、Deny、Pass 动作。

Cilium 1.20 如何改进 BGP 调试工具?

Cilium 1.20 通过 hive-shell 提供新的 BGP 命令,如 bgp/route-policies 显示已编程的路由策略,bgp/peers 支持 --format 选项(table、JSON、detailed)查看对等体详细信息。旧的 cilium-dbg bgp 子命令和本地 REST API 已弃用。

🏷️

标签

➡️

继续阅读