| name | troubleshooting-network-operator |
| description | Diagnose and fix NVIDIA Network Operator issues in Kubernetes. Use when pods can't get RDMA network, SR-IOV VFs not showing, IP allocation failures, network attachment missing, must-gather diagnostics, operator pods crashing, NicClusterPolicy errors, or IPAM pool exhaustion. |
Troubleshooting Network Operator
Systematic diagnostic flow for Network Operator issues.
Step 1: Collect Diagnostics
./must-gather-network.sh
python3 python_tools/netop_tools.py must-gather --output-dir /tmp/diag
Step 2: Check Operator Health
kubectl get pods -n ${NETOP_NAMESPACE}
./ops/getNicClusterPolicy.sh
./ops/getnetwork.sh
What to look for: All operator/daemon pods should be Running. NicClusterPolicy should show state: ready.
Step 3: Targeted Checks
Network not attaching to pods
./ops/get-network-attach-defs.sh
./ops/getnetworkstatus.sh
./ops/getpodnetworkstatus.sh
SR-IOV VFs not available
./ops/checksriovstate.sh
./ops/syncsriov.sh
./ops/getsriovnodepolicy.sh
./ops/getsriovnodestate.sh
./ops/getnumvfs.sh
IP allocation failures
./ops/checkipam.sh
./ops/checkippool.sh <NODENAME>
./ops/getippool.sh
./ops/getallocatedip.sh
python3 python_tools/netop_tools.py ops check ipam
Connectivity issues
./ops/pingtest.sh
./ops/check-iptables.sh
./ops/chkfw.sh
Diagnostic Decision Tree
| Symptom | Check | Likely Cause |
|---|
| Operator pod CrashLoopBackOff | kubectl logs -n ${NETOP_NAMESPACE} <pod> | Version mismatch, missing CRDs |
| No VFs on node | checksriovstate.sh | Sync in progress, wrong PCI BDF in NETOP_NETLIST |
| Pod stuck Pending | kubectl describe pod <pod> | Resource not available (wrong resource name) |
| IP not allocated | checkipam.sh | Pool exhausted, wrong IPAM_TYPE, pool not applied |
| Network annotation missing | getnetworkstatus.sh | NetworkAttachmentDefinition not in pod namespace |
| Finalizer blocking delete | getfinalizers.sh | Orphaned finalizer — patch to remove |
| MTU errors | Check NETOP_MTU in config | Mismatch between config and physical network |
Cleanup Stuck Resources
./ops/getfinalizers.sh
./uninstall/delstucknamespace.sh
./uninstall/delevictedpods.sh
Key Log Locations in Must-Gather
| File | Contents |
|---|
network_operator_pod.log | Operator controller logs |
network_operand_pod_*.log | Per-daemon logs (OFED, device plugin, IPAM) |
custom_resource_*.yaml | All CRD state snapshots |
nodes.yaml | Node labels, taints, allocatable resources |