5.6. NVIDIA 네트워크 Operator 구성
NVIDIA 네트워크 Operator는 NVIDIA 네트워킹 리소스 및 드라이버 및 장치 플러그인과 같은 네트워킹 관련 구성 요소를 관리하여 NVIDIA GPUDirect RDMA 워크로드를 활성화합니다.
사전 요구 사항
- NVIDIA 네트워크 Operator를 설치했습니다.
프로세스
다음 명령을 실행하여 컨트롤러가
nvidia-network-operator네임스페이스에서 실행되고 있는지 확인하여 네트워크 Operator가 설치 및 실행 중인지 확인합니다.$ oc get pods -n nvidia-network-operator출력 예
NAME READY STATUS RESTARTS AGE nvidia-network-operator-controller-manager-6f7d6956cd-fw5wg 1/1 Running 0 5mOperator가 실행되면
NicClusterPolicy사용자 정의 리소스 파일을 생성합니다. 선택한 장치는 시스템 구성에 따라 다릅니다. 이 예에서 Infiniband 인터페이스ibs2f0은 하드 코딩되며 공유 NVIDIA GPUDirect RDMA 장치로 사용됩니다.apiVersion: mellanox.com/v1alpha1 kind: NicClusterPolicy metadata: name: nic-cluster-policy spec: nicFeatureDiscovery: image: nic-feature-discovery repository: ghcr.io/mellanox version: v0.0.1 docaTelemetryService: image: doca_telemetry repository: nvcr.io/nvidia/doca version: 1.16.5-doca2.6.0-host rdmaSharedDevicePlugin: config: | { "configList": [ { "resourceName": "rdma_shared_device_ib", "rdmaHcaMax": 63, "selectors": { "ifNames": ["ibs2f0"] } }, { "resourceName": "rdma_shared_device_eth", "rdmaHcaMax": 63, "selectors": { "ifNames": ["ens8f0np0"] } } ] } image: k8s-rdma-shared-dev-plugin repository: ghcr.io/mellanox version: v1.5.1 secondaryNetwork: ipoib: image: ipoib-cni repository: ghcr.io/mellanox version: v1.2.0 nvIpam: enableWebhook: false image: nvidia-k8s-ipam repository: ghcr.io/mellanox version: v0.2.0 ofedDriver: readinessProbe: initialDelaySeconds: 10 periodSeconds: 30 forcePrecompiled: false terminationGracePeriodSeconds: 300 livenessProbe: initialDelaySeconds: 30 periodSeconds: 30 upgradePolicy: autoUpgrade: true drain: deleteEmptyDir: true enable: true force: true timeoutSeconds: 300 podSelector: '' maxParallelUpgrades: 1 safeLoad: false waitForCompletion: timeoutSeconds: 0 startupProbe: initialDelaySeconds: 10 periodSeconds: 20 image: doca-driver repository: nvcr.io/nvidia/mellanox version: 24.10-0.7.0.0-0 env: - name: UNLOAD_STORAGE_MODULES value: "true" - name: RESTORE_DRIVER_ON_POD_TERMINATION value: "true" - name: CREATE_IFNAMES_UDEV value: "true"다음 명령을 실행하여 클러스터에
NicClusterPolicy사용자 정의 리소스를 생성합니다.$ oc create -f network-sharedrdma-nic-cluster-policy.yaml출력 예
nicclusterpolicy.mellanox.com/nic-cluster-policy createdDOCA/MOFED 컨테이너에서 다음 명령을 실행하여
NicClusterPolicy를 검증합니다.$ oc get pods -n nvidia-network-operator출력 예
NAME READY STATUS RESTARTS AGE doca-telemetry-service-hwj65 1/1 Running 2 160m kube-ipoib-cni-ds-fsn8g 1/1 Running 2 160m mofed-rhcos4.16-9b5ddf4c6-ds-ct2h5 2/2 Running 4 160m nic-feature-discovery-ds-dtksz 1/1 Running 2 160m nv-ipam-controller-854585f594-c5jpp 1/1 Running 2 160m nv-ipam-controller-854585f594-xrnp5 1/1 Running 2 160m nv-ipam-node-xqttl 1/1 Running 2 160m nvidia-network-operator-controller-manager-5798b564cd-5cq99 1/1 Running 2 5d23h rdma-shared-dp-ds-p9vvg 1/1 Running 0 85m다음 명령을 실행하여
mofed컨테이너에rsh로 접속하여 상태를 확인하세요.$ MOFED_POD=$(oc get pods -n nvidia-network-operator -o name | grep mofed) $ oc rsh -n nvidia-network-operator -c mofed-container ${MOFED_POD} sh-5.1# ofed_info -s출력 예
OFED-internal-24.07-0.6.1:sh-5.1# ibdev2netdev -v출력 예
0000:0d:00.0 mlx5_0 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ibs2f0 (Up) 0000:a0:00.0 mlx5_1 (MT41692 - 900-9D3B4-00EN-EA0) BlueField-3 E-series SuperNIC 400GbE/NDR single port QSFP112, PCIe Gen5.0 x16 FHHL, Crypto Enabled, 16GB DDR5, BMC, Tall Bracket fw 32.42.1000 port 1 (ACTIVE) ==> ens8f0np0 (Up)IPoIBNetwork사용자 지정 리소스 파일을 생성합니다.apiVersion: mellanox.com/v1alpha1 kind: IPoIBNetwork metadata: name: example-ipoibnetwork spec: ipam: | { "type": "whereabouts", "range": "192.168.6.225/28", "exclude": [ "192.168.6.229/30", "192.168.6.236/32" ] } master: ibs2f0 networkNamespace: default다음 명령을 실행하여 클러스터에서
IPoIBNetwork리소스를 생성합니다.$ oc create -f ipoib-network.yaml출력 예
ipoibnetwork.mellanox.com/example-ipoibnetwork created다른 인터페이스에 대한
MacvlanNetwork사용자 지정 리소스 파일을 만듭니다.apiVersion: mellanox.com/v1alpha1 kind: MacvlanNetwork metadata: name: rdmashared-net spec: networkNamespace: default master: ens8f0np0 mode: bridge mtu: 1500 ipam: '{"type": "whereabouts", "range": "192.168.2.0/24", "gateway": "192.168.2.1"}'다음 명령을 실행하여 클러스터에 리소스를 생성합니다.
$ oc create -f macvlan-network.yaml출력 예
macvlannetwork.mellanox.com/rdmashared-net created