eBPF 主机路由概述(预览版)

Important

AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

随着容器化工作负载在分布式环境中扩展,对高性能、低延迟网络的需求变得至关重要。 eBPF 主机路由是 高级容器网络服务(ACNS) 中以性能为中心的功能,它使用扩展的 Berkeley 数据包筛选器(eBPF)技术优化 Kubernetes 群集中的流量流。 Kubernetes 主机上的旧路由在主机网络命名空间中以 iptable 和 netfilter 规则处理的形式引入开销。 eBPF 主机路由在旧主机路由方面的优势如下:

  • 在 eBPF 程序中实现路由逻辑。
  • 允许 Cilium eBPF 绕过主机命名空间中的 iptables。

此直接路径可减少跃点数和处理层数,从而加快数据包传递速度。

主要优势

降低延迟 - 绕过主机中的 iptables 可降低 Pod 到 Pod 的延迟

吞吐量增加 - 相较于传统路由,可以观察到节点间 Pod 到 Pod 流量的显著改进

减少 CPU 使用率 - 由于删除基于 iptables 的 SNAT 和路由逻辑,CPU 使用率会适度减少

eBPF 主机路由的用例是性能关键型工作负荷,例如高吞吐量微服务、实时服务或 AI/ML 工作负载。 在启用之前,请确保部署环境满足要求。

eBPF 主机路由的组件

iptables blocker - 初始化容器,用于防止将来在主机网络命名空间中安装 iptables 规则(启用 eBPF 主机路由时将绕过此类规则)。

IP Masquerade Agent - 当 eBPF 主机路由处于活动状态时,Cilium 将使用基于 BPF 的伪装接管 SNAT 责任。 ip-masq-agent 如果 eBPF 主机路由后来被禁用,则保持运行以保持一致的行为;但是,eBPF 主机路由处于活动状态时会忽略其 iptables 规则。

注意事项

  • 启用 eBPF 主机路由会导致绕过主机网络命名空间中的 iptables 规则。 因此,AKS 尝试检测并阻止在主机网络名称空间中使用 iptables 规则的群集中启用 eBPF 主机路由。

  • 在启用了 eBPF 主机路由的群集上,AKS 会阻止尝试在主机网络命名空间中安装 iptables 规则。 尝试绕过此块可能会导致群集无法运转。

  • 启用 eBPF 主机路由会通过节点池的滚动升级来更新节点,以通过节点排空超时来遵守现有连接。 在给定节点上启用 eBPF 主机路由后,该节点将被标记为 kubernetes.azure.com/ebpf-host-routing=true

  • eBPF 主机路由支持双堆栈连接。

局限性

  • eBPF 主机路由当前与运行 Ubuntu 24.04 或 Azure Linux 3.0 以外的 OS 的节点不兼容。 机密虚拟机和 Pod 沙盒目前也不支持 eBPF 主机路由。

  • 只能为群集中的所有节点启用 eBPF 主机路由。 不支持混合节点方案。

  • 由 Cilium 提供支持的 Azure CNI 和扩展 eBPF 主机路由不支持 Windows 节点。

后续步骤