RDMA Shared Device Plugin#
RDMA Shared Device Plugin (k8s-rdma-shared-dev-plugin) – компонент DropApp, который необходим для использования сетевых устройств RDMA при запуске крупных языковых моделей. Поддерживает сети передачи данных IB и RoCE HCA.
Ключевые функции данного компонента:
Регистрация RDMA-устройств.
Совместимость с CNI-плагинами.
Использование с CNI macvlan для RDMA#
Данный сценарий показывает совместимость плагина с CNI-плагином, а именно с macvlan, например при создании конфигурации для дополнительного интерфейса macvlan для назначения каждому контейнеру уникального MAC-адреса.
Чтобы использовать плагин устройства с macvlan для RDMA, выполните следующие шаги:
Для настройки, подключения контейнеров к локальной сети, создайте конфигурационный файл для macvlan:
cat > /etc/cni/net.d/00-macvlan.confПример наполнения конфигурационного файла:
{ "cniVersion": "0.3.1", "name": "mynet", "type": "macvlan", "master": "enp0s0f0", # имя контейнера "ipam": { "type": "host-local", "subnet": "<rdma-ip-address>.0/24", "rangeStart": "<rdma-ip-address>.171", "rangeEnd": "<rdma-ip-address>.181", "routes": [ { "dst": "0.0.0.0/0" } ], "gateway": "<rdma-ip-address>.1" } }Разверните плагин устройства:
Перейдите в каталог с конфигурацией, например:
cd deployment/k8s/base/overlayПримените конфигурацию:
kubectl apply -k .
Разверните приложение RDMA:
kubectl create -f rdma-app.yamlПример конфигурационного файла
rdma-app.yaml:apiVersion: v1 kind: Pod metadata: name: rdma-app spec: containers: - name: rdma-container image: rdma-image:latest resources: limits: cpu: "1" memory: "512Mi" requests: cpu: "0.5" memory: "256Mi" env: - name: value: "" nodeSelector: rdma: "true" # Указывает, что pod должен развертываться на узлах, поддерживающих RDMA