Troubleshooting Network Topology
If pods from the swo-k8s-collector-kernel-collector
DaemonSet are failing or restarting, Network Topology and other monitoring features become unavailable. This is usually caused by running on incompatible Kubernetes nodes.
The eBPF monitoring technology used by this feature has specific requirements for the client node operating system. Supported Linux distributions include:
- CentOS
- RHEL
- Amazon Linux
- Rocky Linux
- Debian
- Ubuntu
The Linux kernel version must be between 3.12 and 5.10.
If your machine does not meet these requirements, SolarWinds recommends disabling eBPF monitoring which will also disable Network Topology. To disable eBPF monitoring, set the following in your values.yaml
:
ebpfNetworkMonitoring:
enabled: false
If you have Istio deployed in your cluster, Network Topology is still available even after disabling eBPF network monitoring. Istio provides its own traffic visibility that the SWO K8s Collector can use to reconstruct network relationships.
However, if you don’t use Istio, your nodes meet the OS and kernel requirements and you have shell access to them, you can proceed with the following troubleshooting guide.
Troubleshooting Kernel Headers
If the swo-k8s-collector-kernel-collector
pods are still failing despite meeting system requirements, check the pod logs. If you see errors similar to the following, it's likely that the kernel headers or required repositories are missing on your node:
-
Failed to download metadata for repo ...
-
No match for argument: kernel-devel-...
Follow the steps below on the affected node to resolve the issue. If you don’t have shell access to the node or encounter different errors, SolarWinds recommends disabling ebpfNetworkMonitoring
.
Step 1: Enable the Development Repository
Debian-based systems
Install development tools:
sudo apt update
sudo apt install -y build-essential
RHEL-based systems
Enable the devel
repository:
sudo dnf config-manager --set-enabled devel
If the devel
repository is unavailable, try the following:
sudo dnf config-manager --set-enabled crb
Step 2: Manually install the required package
Debian-based systems
sudo apt install -y "linux-headers-$(uname -r)"
RHEL-based systems
sudo dnf install -y "kernel-devel-$(uname -r)"
If your version is unavailable, check for available versions and install the closest one:
Debian-based systems
sudo apt list --all-versions linux-headers
RHEL-based systems
sudo dnf list kernel-devel --showduplicates
Step 3: Verify the installation
Check that the correct headers are installed:
Debian-based systems
ls -l /usr/src/linux-headers-$(uname -r)
RHEL-based systems
ls -l /usr/src/kernels/$(uname -r)