全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan eRDMA untuk mempercepat jaringan kontainer di kluster ACK

更新时间:Dec 09, 2025

Elastic Remote Direct Memory Access (eRDMA) adalah layanan jaringan RDMA berlatensi rendah, throughput tinggi, berkinerja tinggi, dan sangat skalabel yang disediakan oleh Alibaba Cloud. eRDMA dikembangkan berdasarkan arsitektur SHENLONG generasi keempat dan Virtual Private Cloud (VPC). Layanan ini sepenuhnya kompatibel dengan ekosistem RDMA dan menyediakan jaringan ultra-besar yang inklusif untuk instans Elastic Compute Service (ECS). Topik ini menjelaskan cara mengonfigurasi dan menggunakan eRDMA di kluster Container Service for Kubernetes (ACK).

Prasyarat

Langkah 1: Instal ACK eRDMA Controller

Ikuti langkah-langkah berikut untuk menginstal ACK eRDMA Controller.

Catatan
  • Jika kluster ACK Anda menggunakan Terway, konfigurasikan filter elastic network interface (ENI) untuk Terway agar tidak mengubah ENI eRDMA. Untuk informasi selengkapnya, lihat Configure a filter for ENIs.

  • Jika sebuah node memiliki beberapa ENI, ACK eRDMA Controller mengonfigurasi entri rute untuk ENI tambahan eRDMA dengan prioritas lebih rendah daripada entri rute untuk ENI dalam Blok CIDR yang sama, menggunakan prioritas routing default 200. Jika Anda perlu mengonfigurasi ENI secara manual setelah menginstal ACK eRDMA Controller, pastikan untuk menghindari konflik routing.

  1. Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, klik Add-ons.

  2. Pada halaman Add-ons, klik tab Networking, temukan ACK eRDMA Controller, lalu ikuti petunjuk pada halaman tersebut untuk mengonfigurasi dan menginstal komponen ini.

    Parameter

    Deskripsi

    preferDriver Driver type

    Pilih tipe driver eRDMA yang digunakan pada node kluster. Nilai yang valid:

    • default: Mode driver default.

    • compat: Mode driver yang kompatibel dengan RDMA over Converged Ethernet (RoCE).

    • ofed: Mode driver berbasis ofed, yang berlaku untuk model GPU.

    Untuk informasi selengkapnya mengenai jenis-jenis driver, lihat Enable eRDMA.

    Specifies whether to assign all eRDMA devices of nodes to pods

    Nilai yang valid:

    • True: Jika Anda memilih kotak centang ini, semua perangkat eRDMA pada node dialokasikan ke pod.

    • False: Jika Anda tidak memilih kotak centang ini, pod dialokasikan satu perangkat eRDMA berdasarkan topologi non-uniform memory access (NUMA). Anda harus mengaktifkan kebijakan CPU statis untuk node guna memastikan NUMA dapat dialokasikan ke pod dan perangkat. Untuk informasi selengkapnya mengenai cara mengonfigurasi kebijakan CPU, lihat Create and manage node pools.

    Di panel navigasi sebelah kiri, pilih Workloads > Pods. Pada halaman Pods, pilih namespace ack-erdma-controller untuk melihat status pod dan memastikan komponen berjalan sesuai harapan.

Langkah 2: Gunakan eRDMA untuk mempercepat jaringan kontainer

Setelah menginstal ACK eRDMA Controller, Anda dapat menggunakan konfigurasi berikut untuk mengaktifkan eRDMA pada pod.

Konfigurasi

Metode konfigurasi

Deskripsi

Enable eRDMA

Tentukan penggunaan resource aliyun/erdma dalam resource kontainer pod.

spec:
  containers:
  - name: erdma-container
    resources:
      limits:
        aliyun/erdma: 1

Alokasikan perangkat eRDMA ke pod dengan menentukan resource aliyun/erdma dalam pod.

Setelah mengalokasikan perangkat RDMA, Anda dapat melihat perangkat yang dialokasikan di dalam pod.

/# ls /dev/infiniband/
rdma_cm  uverbs0

Enable Shared Memory Communication over RDMA (SMC-R)

Setelah mengaktifkan eRDMA, tentukan anotasi network.alibabacloud.com/erdma-smcr: "true" untuk mempercepat koneksi TCP di dalam pod.

metadata:
  annotations:
    network.alibabacloud.com/erdma-smcr: "true"

Setelah mengaktifkan SMC-R, percepatan eRDMA hanya dapat digunakan jika SMC-R dikonfigurasi pada kedua ujung koneksi TCP.

Anda dapat menginstal smc-tools di dalam pod dan menjalankan perintah smcss untuk memeriksa status percepatan koneksi.

Catatan
  • Fitur ini hanya didukung di Alibaba Cloud Linux 3. Versi kernel harus 5.10.134-17 atau lebih baru. Untuk informasi selengkapnya, lihat Alibaba Cloud Linux 3 image release notes.

  • Fitur ini tidak didukung jika Anda memilih ofed atau compat sebagai tipe driver eRDMA.

  • Perangkat eRDMA Alibaba Cloud ERI dan SMC tidak mendukung Alamat IPv6. Jika aplikasi menggunakan IPv6, SMC akan kembali menggunakan TCP.

Skenario 1: Model GPU menggunakan eRDMA untuk mempercepat NCCL

  1. Saat menginstal ACK eRDMA Controller berdasarkan Langkah 1: Instal ACK eRDMA Controller, atur parameter preferDriver ke ofed untuk mempercepat Nvidia Collective Communication Library (NCCL).

  2. Tambahkan node yang dipercepat GPU ke kelompok node. Untuk informasi selengkapnya, lihat Create and manage node pools.

  3. Instal paket terkait eRDMA saat membangun gambar kontainer aplikasi.

    Lihat paket terkait eRDMA yang telah diinstal

    # Debian atau Ubuntu: Pastikan nama dan versi OS di sources.list sama dengan yang Anda gunakan.
    wget -qO - https://mirrors.aliyun.com/erdma/GPGKEY | apt-key add - && echo "deb [ arch=amd64 ] https://mirrors.aliyun.com/erdma/apt/{OS|ubuntu} {Version|focal}/erdma main" | tee /etc/apt/sources.list.d/erdma.list && apt update && apt install -y libibverbs1 ibverbs-providers ibverbs-utils librdmacm
    
    # Untuk Alibaba Cloud Linux atau Red Hat Enterprise Linux (RHEL), tentukan alamat repositori OS di direktori yum.repos.d.
    cat > /etc/yum.repos.d/erdma.repo <<EOF
    [erdma]
    name = ERDMA Repository
    baseurl = http://mirrors.aliyun.com/erdma/yum/redhat/7/erdma/x86_64/
    gpgcheck = 0
    enabled = 1
    EOF
    yum install --disablerepo=*  --enablerepo erdma -y libibverbs ibverbs-providers ibverbs-utils librdmacm
  4. Jalankan aplikasi GPU yang menggunakan eRDMA di kluster. Contoh yang digunakan adalah nccl-test.

    Lihat contoh templat aplikasi GPU yang menggunakan eRDMA

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: nccltest
    spec:
      selector:
        matchLabels:
          app: nccltest
      serviceName: "nccltest"
      replicas: 2
      template:
        metadata:
          labels:
            app: nccltest
        spec:
          hostNetwork: true 
          dnsPolicy: ClusterFirstWithHostNet
          containers:
          - env:
            - name: NCCL_SOCKET_IFNAME
              value: "eth0"
            - name: NCCL_DEBUG
              value: "INFO"
            - name: NCCL_IB_GID_INDEX
              value: "1"
            image: <nccl-test-image-with-erdma>
            imagePullPolicy: Always
            name: nccltest
            securityContext:
              privileged: true
            resources:
              limits:
                nvidia.com/gpu: "8"
                aliyun/erdma: "1"
              requests:
                nvidia.com/gpu: "8"
                aliyun/erdma: "1"
  5. Verifikasi bahwa eRDMA digunakan oleh NCCL.

    Anda dapat memeriksa jenis komunikasi dan jumlah antarmuka jaringan yang digunakan oleh NCCL di log aplikasi. Contoh:

    image

    Output perintah menunjukkan bahwa perangkat eRDMA erdma_0 dan erdma_1 dipercepat.

Skenario 2: Gunakan SMC-R untuk mempercepat jaringan aplikasi

  1. Saat menginstal ACK eRDMA Controller berdasarkan Langkah 1: Instal ACK eRDMA Controller, atur parameter preferDriver ke default untuk mempercepat komunikasi reguler.

  2. Buat aplikasi yang dapat dipercepat menggunakan SMC-R di kluster berdasarkan contoh kode berikut:

    Lihat contoh templat aplikasi yang menggunakan SMC-R

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: app-with-erdma
      name: app-with-erdma
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: app-with-erdma
      template:
        metadata:
          labels:
            app: app-with-erdma
          annotations:
            network.alibabacloud.com/erdma-smcr: "true"
        spec:
          containers:
          - image: <application image>
            imagePullPolicy: Always
            name: app-with-erdma
            resources:
              limits:
                aliyun/erdma: 1
  3. Periksa status koneksi jaringan di dalam pod.

    Anda dapat menginstal smc-tools di dalam kontainer dan menjalankan perintah smcss untuk melihat hasil percepatan.

    /# smcss
    State          UID   Inode   Local Address           Peer Address            Intf Mode 
    ACTIVE         00000 0059964 172.17.192.73:47772     172.17.192.10:80        0000 SMCR

    Pada output perintah, SMCR ditampilkan di kolom Mode, yang menunjukkan bahwa koneksi tersebut menggunakan eRDMA.