使用RDMA共享模式

更新时间:
复制 MD 格式

RDMA 共享模式下,多个 Pod 可以共享同一物理 RDMA 网卡,适合对设备隔离要求不高的场景。RDMA Device Plugin 将每个物理网卡注册为 1000 个 rdma/hca 虚拟资源,按需分配给 Pod。

适用范围

检查节点RDMA资源

安装组件后,检查节点是否拥有资源rdma/hca

kubectl get node <node-name> -oyaml

预期输出:

...
allocatable:
  cpu: 189280m
  rdma/hca: 1k
capacity:
  cpu: "192"
  rdma/hca: 1k
...

场景一:hostNetwork模式使用RDMA

hostNetwork模式下,Pod直接使用宿主节点网络,适用于需要最高网络性能的场景。

注意 如果RDMA Device Plugin组件未开启非hostNetwork模式开关(配置项为False),则必须配置hostNetwork: true才可使用RDMA功能。
apiVersion: batch/v1
kind: Job
metadata:
  name: rdma-hostnetwork-test
spec:
  parallelism: 1
  template:
    spec:
      hostNetwork: true
      tolerations:
      - operator: Exists
      containers:
      - name: rdma-test
        image: "<image>"
        command:
        - sh
        - -c
        - |
          python /workspace/benchmark.py
        resources:
          limits:
            nvidia.com/gpu: 8
            rdma/hca: 1
        workingDir: /root
        volumeMounts:
        - name: shm
          mountPath: /dev/shm
        securityContext:
          capabilities:
            add:
            - SYS_RESOURCE
            - IPC_LOCK
      restartPolicy: Never
      volumes:
      - name: shm
        emptyDir:
          medium: Memory
          sizeLimit: 8Gi

关键配置说明

配置项

说明

hostNetwork: true

Pod使用宿主节点网络,直接访问RDMA设备

rdma/hca: 1

申请RDMA设备资源

nvidia.com/gpu: 8

申请GPU资源(按需调整)

/dev/shm

共享内存卷,用于多进程共享数据

SYS_RESOURCE / IPC_LOCK

RDMA应用所需的Linux capabilities

场景二:非hostNetwork模式使用RDMA

hostNetwork模式下,Pod拥有独立IP地址。使用前需满足以下条件:

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

  • RDMA Device Plugin组件的配置项开启 RDMA 网络支持(非 hostNetwork模式)须设置为True。具体操作,请参见RDMA概述

apiVersion: batch/v1
kind: Job
metadata:
  name: rdma-non-hostnetwork-test
spec:
  parallelism: 1
  template:
    spec:
      hostNetwork: false
      tolerations:
      - operator: Exists
      containers:
      - name: rdma-test
        image: "<image>"
        command:
        - sh
        - -c
        - |
          python /workspace/benchmark.py
        resources:
          limits:
            nvidia.com/gpu: 8
            rdma/hca: 1
        workingDir: /root
        volumeMounts:
        - name: shm
          mountPath: /dev/shm
        securityContext:
          capabilities:
            add:
            - SYS_RESOURCE
            - IPC_LOCK
      restartPolicy: Never
      volumes:
      - name: shm
        emptyDir:
          medium: Memory
          sizeLimit: 8Gi
与场景一相比,仅 hostNetwork: false 及 Job 名称(rdma-non-hostnetwork-test)不同,其余配置项含义请参见场景一的关键配置说明。

模式切换

共享模式和独占模式之间切换需要通过节点池操作,不支持运行时自动切换。如需切换为独占模式,请参见使用RDMA独占模式

切换模式前,请确保该节点上没有正在使用rdma/hca资源的Pod,否则已有Pod的设备分配会失效。

相关文档