全部產品
Search
文件中心

Container Service for Kubernetes:Pod在靈駿節點使用RDMA網路

更新時間:Dec 30, 2025

本文檔介紹如何在ACK託管叢集Pro版的靈駿節點中配置和使用RDMA(RemoteDirect Memory Access)技術,實現高效能容器網路通訊。RDMA技術可顯著降低網路延遲並提升輸送量,適用於Alibaba Cloud HPC、AI訓練、分布式儲存等對網路效能要求嚴苛的情境。

RDMA介紹

RDMA(Remote Direct Memory Access,遠端直接記憶體存取)是一種高效能網路通訊技術,旨在解決傳統網路傳輸中伺服器端資料處理的延遲問題。RDMA允許資料直接從一台電腦的記憶體傳輸到另一台電腦,無需雙方作業系統的介入。這種機制實現了高輸送量、低延遲的網路通訊,尤其適合在大規模並行電腦叢集中使用。

RDMA通過網路將資料直接傳入目標電腦的儲存區,實現從一個系統到遠程系統儲存空間的快速資料移動。整個傳輸過程不對作業系統造成任何影響,因此幾乎不消耗電腦的處理能力,繼而減少外部儲存空間複製和環境切換的開銷,節省記憶體頻寬和CPU周期,以提升應用系統效能。

前提條件

在Kubernetes中,Pod支援兩種網路模式:

  • 獨立IP模式:Pod擁有獨立的IP地址(非hostNetwork模式)

  • 共用網路模式:Pod直接使用宿主節點網路(hostNetwork模式)

非hostNetwork模式的Pod使用RDMA功能時,需滿足以下條件:

  • 靈駿節點所在的靈駿裸金屬叢集的計算網路IP版本須為IPv6

  • 建立靈駿裸金屬叢集時必須選擇IPv6模式

操作步驟

  1. 安裝RDMA Device Plugin組件。

    1. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,單擊組件管理

    2. 組件管理頁面,單擊其他頁簽,定位ack-rdma-device-plugin組件,按照頁面提示配置組件並完成安裝

      配置項

      說明

      開啟支援非 hostNetwork 的 RDMA 網路

      選擇非hostNetwork模式的Pod的RDMA使用開關。可選值:

      • False(不勾選):僅允許hostNetwork模式的Pod使用RDMA網路。

      • True(勾選):允許非hostNetwork模式的Pod使用RDMA網路。開啟前,請確認ACK叢集關聯的靈駿裸金屬叢集使用的網路版本為IPv6,否則RDMA配置不生效。

  2. 確認RDMA Device Plugin已正常運行,且在每個有RDMA的靈駿節點都已啟動。

    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
  3. 檢查節點是否擁有資源rdma/hca

    kubectl get node e01-cn-xxxx -oyaml

    預期輸出:

    ...
      allocatable:
        cpu: 189280m
        ephemeral-storage: "3401372677838"
        hugepages-1Gi: "0"
        hugepages-2Mi: "0"
        memory: 2063229768Ki
        nvidia.com/gpu: "8"
        pods: "64"
        rdma/hca: 1k
      capacity:
        cpu: "192"
        ephemeral-storage: 3690725568Ki
        hugepages-1Gi: "0"
        hugepages-2Mi: "0"
        memory: 2112881480Ki
        nvidia.com/gpu: "8"
        pods: "64"
        rdma/hca: 1k
    ...
  4. 執行以下YAML檔案,為Pod使用RDMA功能申請rdma/hca資源。

    • 申請量為rdma/hca:1即可。

    • 如果RDMA Device Plugin組件未開啟非hostNetwork模式的Pod允許使用RDMA的開關,則需配置hostNetwork: true的Pod才可使用RDMA功能。

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: hps-benchmark
    spec:
      parallelism: 1
      template:
        spec:
          containers:
          - name: hps-benchmark
            image: "****"
            command:
            - sh
            - -c
            - |
              python /workspace/wdl_8gpu_outbrain.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
          tolerations:
            - operator: Exists