RDMA 共享模式下,多个 Pod 可以共享同一物理 RDMA 网卡,适合对设备隔离要求不高的场景。RDMA Device Plugin 将每个物理网卡注册为 1000 个 rdma/hca 虚拟资源,按需分配给 Pod。
适用范围
已创建ACK托管集群Pro版,并添加灵骏节点。具体操作,请参见创建和管理灵骏节点池。
灵骏节点配备RDMA网卡并驱动正常。更多信息,请参见Pod在灵骏节点使用RDMA网络。
已安装RDMA Device Plugin组件。具体操作,请参见RDMA概述。
非hostNetwork模式需满足 IPv6 和组件配置要求,详见场景二。
检查节点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关键配置说明
配置项 | 说明 |
| Pod使用宿主节点网络,直接访问RDMA设备 |
| 申请RDMA设备资源 |
| 申请GPU资源(按需调整) |
| 共享内存卷,用于多进程共享数据 |
| 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的设备分配会失效。
相关文档
如需使用Pod独占物理网卡和NUMA亲和,请参见使用RDMA独占模式。