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 通过节点的路径。
节点上的 Dataplane V2 控制器称为 anetd
。anetd
作为 DaemonSet 部署到每个节点,负责解释 eBPF 中的 Kubernetes 对象和编程网络拓扑。anetd
控制器取代了服务路由 kube-proxy 及其将在 kube-system 命名空间中执行的路由。
GKE 集群上的 Dataplane V2 在叠加网络模式下运行。在此模式下,所有集群节点都使用 Geneve 封装协议形成隧道网格。所有容器到容器的网络流量都会通过这些隧道进行路由。此模型的主要优点是,集群的节点不需要知道底层 Azure 网络配置。
后续步骤
- 在 GKE Multi-Cloud 上配置网络政策
- 使用网络政策日志记录功能记录集群的网络政策何时允许或拒绝与 Pod 的连接。