Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Use eRDMA to accelerate container networks in ACK clusters

Son Güncelleme:Oct 06, 2026

NCCL dağıtık eğitimi veya SMC-R şeffaf TCP hızlandırması için pod'lar içinde RDMA ağını etkinleştirin.

ACK eRDMA Denetleyicisi'ni yükleyin ve pod'larda eRDMA hızlandırmasını etkinleştirin. İki senaryo ele alınmıştır: NCCL ile GPU dağıtık eğitimi ve SMC-R ile şeffaf TCP hızlandırması.

Ön koşullar

Aşağıdakilere sahip olduğunuzdan emin olun:

Nasıl çalışır

ACK eRDMA Denetleyicisi, küme düğümlerindeki eRDMA uyumlu esnek ağ arayüzlerini (ENI) yönetir. eRDMA aygıtlarını aliyun/erdma genişletilmiş kaynağı olarak kaydeder, ENI rotalarını yapılandırır ve aygıtları Kubernetes kaynak istekleri aracılığıyla pod'lara sunar.

Pod'lar, kaynak sınırlarında aliyun/erdma bildirerek eRDMA erişimi ister. Kod değişikliği yapmadan TCP bağlantılarını da hızlandırmak için bir pod açıklaması aracılığıyla SMC-R'yi etkinleştirin.

Bileşen Rolü
ACK eRDMA Denetleyicisi eRDMA aygıtlarını genişletilmiş kaynaklar olarak kaydeder; ENI rotalarını yönetir
eRDMA sürücüsü (default / compat / ofed) Her düğüme yüklenen çekirdek düzeyi sürücü
aliyun/erdma kaynağı Pod aygıt erişimi için Kubernetes genişletilmiş kaynağı
SMC-R TCP'yi şeffaf bir şekilde RDMA taşımacılığı ile değiştiren Linux protokolü

Adım 1: ACK eRDMA Denetleyicisi'ni yükleyin

Not

Kümeniz Terway ağ eklentisini kullanıyorsa, Terway'in eRDMA uyumlu ENI'leri değiştirmesini önlemek için ENI'ler için bir izin listesi yapılandırın.

  1. Clusters sayfasında küme adınızı tıklayın, ardından Add-ons seçeneğini tıklayın.

  2. Add-ons sayfasında Network sekmesini tıklayın. Aşağıdaki ayarlarla ACK eRDMA Controller öğesini bulun ve yükleyin:

    Not

    Bir düğümde birden fazla NIC bulunduğunda, denetleyici eRDMA ENI rotalarına aynı CIDR'li NIC rotalarından daha düşük bir öncelik atar. Varsayılan öncelik 200 değerindedir. NIC rotalarını manuel olarak yapılandırırken bu aralıkla çakışmalardan kaçının.

    Ayar Açıklama
    preferDriver (sürücü türü) eRDMA sürücü modu. default: standart hızlandırma. compat: RoCE uyumlu ortamlar. ofed: NCCL çalıştıran GPU örnekleri. Bkz. eRDMA'yı etkinleştirme.
    Specifies whether to assign all eRDMA devices of nodes to pods True: Düğümdeki tüm eRDMA aygıtlarını poda tahsis eder. False: NUMA topolojisine göre bir aygıt tahsis eder. False statik CPU yönetim ilkesini gerektirir. Bkz. Düğüm havuzları oluşturma ve yönetme.
  3. Denetleyicinin çalıştığını doğrulayın. Workloads > Pods bölümüne gidin, ad alanını ack-erdma-controller olarak ayarlayın ve tüm pod'ların çalıştığını onaylayın.

Adım 2: Pod'larda eRDMA'yı etkinleştirin

eRDMA hızlandırmasını etkinleştirmek için pod belirtiminize aşağıdaki yapılandırmaları ekleyin.

eRDMA aygıt erişimini etkinleştirin

Konteynerin kaynak sınırlarında aliyun/erdma kaynağını bildirin:

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

Pod başladıktan sonra eRDMA aygıtlarının kullanılabilir olduğunu doğrulayın:

/# ls /dev/infiniband/
rdma_cm  uverbs0

SMC-R ile şeffaf TCP hızlandırmasını etkinleştirin

SMC-R, kod değişikliği gerektirmeden TCP bağlantılarını RDMA üzerinden şeffaf bir şekilde hızlandırır. eRDMA aygıt erişimini etkinleştirdikten sonra aşağıdaki açıklamayı ekleyin:

metadata:
  annotations:
    network.alibabacloud.com/erdma-smcr: "true"
Not
  • TCP bağlantısının her iki ucunda da SMC-R etkinleştirilmelidir.

  • Yalnızca çekirdek sürümü 5.10.134-17 veya üzeri olan Alibaba Cloud Linux 3 üzerinde desteklenir. Bkz. Alibaba Cloud Linux 3 görüntü sürüm notları.

  • preferDriver değeri ofed veya compat olarak ayarlandığında desteklenmez.

  • eRDMA ve SMC-R IPv6'yı desteklemez. SMC-R, IPv6 bağlantıları için TCP'ye geri döner.

Kullanım durumları

GPU dağıtık eğitimi için NCCL iletişimini hızlandırın

Dağıtık eğitim çalıştıran GPU hızlandırmalı örnekler için bu senaryoyu kullanın. Pod'lar ofed sürücüsünü kullanır ve GPU ile eRDMA kaynaklarını ister.

  1. preferDriver değeri ofed olarak ayarlanmış şekilde ACK eRDMA Denetleyicisi'ni yükleyin.

  2. Düğüm havuzuna GPU düğümleri ekleyin. Bkz. Düğüm havuzları oluşturma ve yönetme.

  3. Derleme sırasında konteyner görüntüsüne eRDMA paketlerini yükleyin. Debian veya Ubuntu için ({OS|ubuntu} ve {Version|focal} yerine kendi değerlerinizi yazın):

    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

    Alibaba Cloud Linux veya RHEL için:

    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. GPU uygulamasını dağıtın. Bu StatefulSet, her biri 8 GPU ve bir eRDMA aygıtına sahip iki çoğaltma üzerinde nccl-test çalıştırır:

    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. NCCL'nin eRDMA kullandığını doğrulayın. Günlüklerde erdma_0 ve erdma_1 öğelerinin etkin olarak gösterilmesi, eRDMA hızlandırmasının aktif olduğunu doğrular.

    image

Uygulama ağlarını SMC-R ile şeffaf bir şekilde hızlandırın

Kod değişikliği gerektirmeden eRDMA hızlandırmasına ihtiyaç duyan standart TCP iş yükleri için bu senaryoyu kullanın. preferDriver değerini default olarak ayarlayın.

  1. preferDriver değeri default olarak ayarlanmış şekilde ACK eRDMA Denetleyicisi'ni yükleyin.

  2. Uygulamayı SMC-R açıklamasıyla dağıtın. Bu Dağıtım, eRDMA aygıt erişimini ve SMC-R hızlandırmasını etkinleştirir:

    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. Hızlandırmayı doğrulayın. Konteynere smc-tools yükleyin ve smcss komutunu çalıştırın:

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

    SMCR ifadesi Mode sütununda, eRDMA hızlandırmasının aktif olduğunu gösterir. TCP gösteriyorsa, hem istemci hem de sunucu pod'larında SMC-R açıklamasının "true" olarak ayarlandığını doğrulayın.

Sonraki adımlar