NVIDIA Network Operator v25.7.0

Deploy SR-IOV Network with RDMA

Step 1: Create NicClusterPolicy

Copy
Copied!
            

apiVersion: mellanox.com/v1alpha1 kind: NicClusterPolicy metadata: name: nic-cluster-policy spec: sriovDevicePlugin: image: sriov-network-device-plugin repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 nvIpam: image: nvidia-k8s-ipam repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 enableWebhook: false secondaryNetwork: cniPlugins: image: plugins repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 multus: image: multus-cni repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0

Copy
Copied!
            

kubectl apply -f nicclusterpolicy.yaml

Step 2: Create IPPool for nv-ipam

Copy
Copied!
            

apiVersion: nv-ipam.nvidia.com/v1alpha1 kind: IPPool metadata: name: sriov-pool namespace: nvidia-network-operator spec: subnet: 192.168.2.0/24 perNodeBlockSize: 50 gateway: 192.168.2.1

Copy
Copied!
            

kubectl apply -f ippool.yaml

Step 3: Configure SR-IOV

Copy
Copied!
            

apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetworkNodePolicy metadata: name: ethernet-sriov namespace: nvidia-network-operator spec: deviceType: netdevice mtu: 1500 nodeSelector: feature.node.kubernetes.io/pci-15b3.present: "true" nicSelector: vendor: "15b3" isRdma: true numVfs: 8 priority: 90 resourceName: sriov_resource

Copy
Copied!
            

kubectl apply -f sriovnetworknodepolicy.yaml

Step 4: Create SR-IOV Network

Copy
Copied!
            

apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetwork metadata: name: sriov-rdma-network namespace: nvidia-network-operator spec: ipam: | { "type": "nv-ipam", "poolName": "sriov-pool" } networkNamespace: default resourceName: sriov_resource

Copy
Copied!
            

kubectl apply -f sriovnetwork.yaml

Step 5: Deploy test workload

Copy
Copied!
            

apiVersion: v1 kind: Pod metadata: name: sriov-test-pod annotations: k8s.v1.cni.cncf.io/networks: sriov-rdma-network spec: containers: - name: test-container image: mellanox/rping-test command: ["/bin/bash", "-c", "sleepinfinity"] securityContext: capabilities: add: ["IPC_LOCK"] resources: requests: nvidia.com/sriov_resource: '1' limits: nvidia.com/sriov_resource: '1'

Copy
Copied!
            

kubectl apply -f pod.yaml

Verify the deployment:

Copy
Copied!
            

kubectl exec -it sriov-test-pod -- ip addr show kubectl exec -it sriov-test-pod -- ibv_devices

Complete Configuration

Copy
Copied!
            

apiVersion: mellanox.com/v1alpha1 kind: NicClusterPolicy metadata: name: nic-cluster-policy spec: sriovDevicePlugin: image: sriov-network-device-plugin repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 nvIpam: image: nvidia-k8s-ipam repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 enableWebhook: false secondaryNetwork: cniPlugins: image: plugins repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 multus: image: multus-cni repository: nvcr.io/nvidia/mellanox version: network-operator-v25.7.0 --- apiVersion: nv-ipam.nvidia.com/v1alpha1 kind: IPPool metadata: name: sriov-pool namespace: nvidia-network-operator spec: subnet: 192.168.2.0/24 perNodeBlockSize: 50 gateway: 192.168.2.1 --- apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetworkNodePolicy metadata: name: ethernet-sriov namespace: nvidia-network-operator spec: deviceType: netdevice mtu: 1500 nodeSelector: feature.node.kubernetes.io/pci-15b3.present: "true" nicSelector: vendor: "15b3" isRdma: true numVfs: 8 priority: 90 resourceName: sriov_resource --- apiVersion: sriovnetwork.openshift.io/v1 kind: SriovNetwork metadata: name: sriov-rdma-network namespace: nvidia-network-operator spec: ipam: | { "type": "nv-ipam", "poolName": "sriov-pool" } networkNamespace: default resourceName: sriov_resource --- apiVersion: v1 kind: Pod metadata: name: sriov-test-pod annotations: k8s.v1.cni.cncf.io/networks: sriov-rdma-network spec: containers: - name: test-container image: mellanox/rping-test command: ["/bin/bash", "-c", "sleepinfinity"] securityContext: capabilities: add: ["IPC_LOCK"] resources: requests: nvidia.com/sriov_resource: '1' limits: nvidia.com/sriov_resource: '1'

Previous Quick Start Guide for Kubernetes
Next Host Device Network with RDMA
© Copyright 2025, NVIDIA. Last updated on Aug 26, 2025.