All Products
Search
Document Center

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

Last Updated:Mar 08, 2026

Elastic Remote Direct Memory Access (eRDMA) adalah layanan jaringan RDMA berkinerja tinggi dari Alibaba Cloud yang menawarkan latensi rendah, throughput tinggi, dan elastisitas tinggi. eRDMA merupakan layanan RDMA hemat biaya untuk Instance ECS yang dibangun di atas arsitektur sistem X-Dragon generasi keempat dan jaringan VPC. Layanan ini sepenuhnya kompatibel dengan ekosistem RDMA dan mendukung penyebaran jaringan skala besar. Topik ini menjelaskan cara mengonfigurasi dan menggunakan eRDMA dalam kluster ACK.

Prasyarat

Langkah 1: Instal komponen ACK eRDMA Controller

Instal komponen ACK eRDMA Controller.

Catatan
  • Jika kluster Anda menggunakan plugin jaringan Terway, Anda juga harus mengonfigurasi daftar putih untuk Terway agar komponen tersebut tidak mengubah ENI yang mendukung eRDMA. Untuk informasi selengkapnya, lihat Configure a whitelist for ENIs.

  • Jika suatu node memiliki beberapa network interface controller (NIC), ACK eRDMA Controller mengonfigurasi entri rute untuk ENI yang mendukung eRDMA dengan prioritas lebih rendah dibandingkan entri rute untuk NIC dalam Blok CIDR yang sama. Prioritas rute default adalah 200. Untuk mengonfigurasi NIC secara manual setelah menginstal ACK eRDMA Controller, pastikan untuk menghindari konflik rute.

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

  2. Pada halaman Add-ons, klik tab Network, temukan komponen ACK eRDMA Controller, lalu ikuti petunjuk untuk mengonfigurasi dan menginstalnya.

    Item Konfigurasi

    Deskripsi

    preferDriver Driver type

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

    • default: Mode driver default.

    • compat: Mode driver yang kompatibel dengan RoCE.

    • ofed: Mode driver berbasis OFED. Mode ini cocok untuk tipe instans GPU-accelerated.

    Untuk informasi selengkapnya mengenai jenis driver, lihat Enable eRDMA.

    Specifies whether to assign all eRDMA devices of nodes to pods

    Nilai yang valid:

    • True (dipilih): Mengalokasikan semua perangkat eRDMA pada node ke Pod.

    • False (tidak dipilih): Mengalokasikan satu perangkat eRDMA ke Pod berdasarkan topologi NUMA. Node harus memiliki kebijakan manajemen CPU statis yang diaktifkan untuk memastikan alokasi NUMA tetap untuk Pod dan perangkat. Untuk informasi cara mengonfigurasi kebijakan CPU, lihat Create and manage node pools.

    Setelah instalasi selesai, di panel navigasi sebelah kiri, pilih Workloads > Pods. Kemudian, atur namespace ke ack-erdma-controller dan periksa status Pod untuk memastikan komponen berjalan sesuai harapan.

Langkah 2: Gunakan eRDMA untuk mempercepat jaringan kontainer

Setelah menginstal komponen ACK eRDMA Controller, Anda dapat menggunakan konfigurasi berikut dalam Pod untuk mengaktifkan akselerasi eRDMA.

Konfigurasi

Metode

Deskripsi

Aktifkan eRDMA

Deklarasikan resource aliyun/erdma dalam resource kontainer pada Pod aplikasi.

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

Deklarasikan resource aliyun/erdma dalam Pod aplikasi untuk mengalokasikan perangkat eRDMA ke Pod.

Setelah perangkat dialokasikan, lihat perangkat tersebut di dalam Pod.

/# ls /dev/infiniband/
rdma_cm  uverbs0

Aktifkan akselerasi transparan dengan SMC-R

Setelah Anda mengaktifkan eRDMA, deklarasikan network.alibabacloud.com/erdma-smcr: "true" dalam Annotation Pod untuk mengaktifkan akselerasi transparan pada koneksi TCP di dalam Pod.

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

Setelah Anda mengaktifkan akselerasi transparan dengan SMC-R, akselerasi eRDMA hanya dapat digunakan jika kedua ujung koneksi TCP dikonfigurasi dengan SMC-R.

Anda dapat menginstal tool smc-tools di dalam Pod dan menjalankan perintah smcss untuk memeriksa status akselerasi koneksi.

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

  • Opsi ini tidak didukung ketika jenis driver diatur ke ofed atau compat.

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

Skenario 1: Gunakan eRDMA untuk mempercepat komunikasi NCCL pada tipe instans GPU-accelerated

  1. Ikuti petunjuk dalam Langkah 1: Instal komponen ACK eRDMA Controller untuk menginstal komponen tersebut. Atur preferDriver ke ofed untuk komunikasi NCCL.

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

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

    Instal paket terkait eRDMA saat membangun gambar

    # Untuk Debian atau Ubuntu: Pastikan nama dan versi OS dalam sources.list konsisten dengan versi 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 librdmacm1
    
    # Untuk Alibaba Cloud Linux atau RHEL: Temukan direktori repo yang sesuai dengan OS Anda dan konfigurasikan 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 ini menggunakan nccl-test.

    Templat contoh untuk 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 NCCL menggunakan eRDMA untuk akselerasi.

    Anda dapat memeriksa log aplikasi untuk melihat jenis komunikasi dan jumlah NIC yang digunakan oleh NCCL. Gambar berikut menunjukkan contohnya.

    image

    Output yang diharapkan menunjukkan bahwa perangkat eRDMA erdma_0 dan erdma_1 digunakan untuk akselerasi.

Skenario 2: Gunakan SMC-R untuk mempercepat jaringan aplikasi secara transparan

  1. Ikuti petunjuk dalam Langkah 1: Instal komponen ACK eRDMA Controller untuk menginstal komponen tersebut. Atur preferDriver ke default untuk akselerasi komunikasi standar.

  2. Gunakan kode contoh berikut untuk membuat aplikasi yang dipercepat oleh SMC-R di kluster.

    Templat contoh untuk aplikasi yang dipercepat oleh 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 akselerasi koneksi jaringan di dalam Pod.

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

    /# 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

    Output yang diharapkan menunjukkan SMCR pada kolom Mode, yang menunjukkan bahwa koneksi telah dipercepat oleh eRDMA.