RDMA Device Plugin

更新时间:
复制 MD 格式

大规模并行计算(如分布式训练)对节点间通信延迟要求极高。RDMA Device Plugin组件将灵骏节点的RDMA网卡注册为Pod可调度的Kubernetes扩展资源,实现绕过内核协议栈的低延迟通信。

RDMA使用模式

RDMA Device Plugin支持共享模式和独占模式:

RDMA 模式

模式说明

使用限制

shared(共享)

默认模式。将RDMA设备以1000个虚拟ID注册为rdma/hca资源,多个Pod可共享同一物理网卡。

不支持设备隔离。不支持NUMA亲和。

exclusive(独占)

以真实PCI地址将RDMA设备注册为rdma/hca资源,每个Pod独占物理网卡。

详见使用RDMA独占模式

RDMA 支持以下三种使用方式,其中共享模式分为HostNetwork和非HostNetwork,独占模式为非 HostNetwork 方式:

使用方式

网络模式

灵骏IPv6要求

适用场景

HostNetwork + 共享

hostNetwork: true

不需要

最高网络性能,多Pod共享网卡

HostNetwork + 共享

hostNetwork: false

需要

Pod独立IP + RDMA

HostNetwork + 独占

hostNetwork: false

需要

Pod独占物理网卡、设备隔离、NUMA亲和

重要

HostNetwork 模式要求灵骏裸金属集群的计算网络IP版本为IPv6。创建灵骏裸金属集群时必须选择IPv6模式,否则RDMA配置不生效。

适用范围

安装RDMA Device Plugin组件

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理

  3. 组件管理页面,单击安装组件,定位ack-rdma-device-plugin组件,按照页面提示配置组件并完成安装。

    配置项

    说明

    开启 RDMA 网络支持(非 hostNetwork模式)

    可选值:

    • False(不勾选):仅允许HostNetwork模式的 Pod 使用 RDMA 网络。

    • True(勾选):允许非HostNetwork模式的Pod使用 RDMA 网络。

    开启前,请确认ACK集群关联的灵骏裸金属集群使用的网络版本为IPv6,否则RDMA配置不生效。

    customResourceName 自定义 RDMA 资源名称

    RDMA资源名,默认为rdma/hca。支持自定义。

  4. 结果验证

    1. 安装完成后,确认RDMA Device Plugin已正常运行:

      kubectl get ds ack-rdma-dp-ds -n kube-system

      预期输出:

      NAME             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
      ack-rdma-dp-ds   2         2         2       2            2           <none>          xxh
    2. 检查节点是否上报rdma/hca资源:

      kubectl describe node <node-name> | grep rdma/hca
      • 共享模式下预期输出:rdma/hca: 1k

      • 独占模式下预期输出:rdma/hca: 4(真实设备数,因机型而异)

配额与限制

  • 两种模式使用相同的资源名rdma/hca(可自定义),通过节点标签区分。

  • 模式切换前,需确保该节点上没有正在使用rdma/hca资源的Pod,否则分配逻辑会出问题。模式切换需通过节点池操作。

  • 独占模式的使用限制详见使用RDMA独占模式

相关文档