Dataplane V2

Dataplane V2 是专为 Kubernetes 网络优化的 GKE 和 GKE 集群数据平面。本页面简要介绍了 Dataplane V2 的功能和工作原理。

简介

Dataplane V2 提供:

  • 在 GKE 和所有 GKE 集群环境中一致的网络组建和管理用户体验。如需了解支持 Dataplane V2 的环境,请参阅 Dataplane V2 的可用性
  • 可实时查看网络活动。
  • 更简单的架构,可更轻松管理集群并进行问题排查。

Dataplane V2 基于 eBPF 和 Linux 节点,可使用 Kubernetes 特有的元数据灵活且高效地处理内核中的网络数据包。

Dataplane V2 的优势

安全性

Kubernetes 网络政策始终在具有 Dataplane V2 的集群中处于开启状态。您无需安装和管理第三方软件插件(如 Calico)即可实施网络政策。

可伸缩性

Dataplane V2 旨在改进大型集群中的路由。它不使用 kube-proxy 或 iptable。

运维

使用 Dataplane V2 创建集群时,将构建网络政策日志记录。如需查看您的 Pod 对象何时允许和拒绝连接,请在集群上配置日志记录 CRD

一致性

Dataplane V2 可在 GKE 和其他 GKE 集群环境上提供相同的功能。如需了解详情,请参阅 Dataplane V2 的可用性

Dataplane V2 的工作原理

当数据包到达 GKE 节点时,内核中安装的 eBPF 程序会决定如何路由和处理数据包。与使用 iptable 处理数据包不同,eBPF 程序可以在数据包中使用 Kubernetes 特有的元数据。这样一来,Dataplane V2 便可以高效地处理内核中的网络数据包,并向用户空间报告已添加注解的操作,以便进行日志记录。下图显示了数据包使用 Dataplane V2 通过节点的路径。

到达节点的数据包由 eBPF 在内核中进行处理。eBPF 程序可执行政策强制执行、服务解析和连接跟踪。系统会向用户空间报告此活动以进行日志记录。随后,数据包负载将传递到 Pod。

节点上的 Dataplane V2 控制器称为 anetdanetd 作为 DaemonSet 部署到每个节点,负责解释 eBPF 中的 Kubernetes 对象和编程网络拓扑。anetd 控制器取代了服务路由 kube-proxy 及其将在 kube-system 命名空间中执行的路由。

GKE 集群上的 Dataplane V2 在叠加网络模式下运行。在此模式下,所有集群节点都使用 Geneve 封装协议形成隧道网格。所有容器到容器的网络流量都会通过这些隧道进行路由。此模型的主要优点是,集群的节点不需要知道底层 AWS 网络配置。

后续步骤