NetworkUnavailable: The node's network is not correctly configured
NetworkUnavailable is set when the node's network routes have not been configured — typically by a cloud controller or network plugin that has not finished its work for that node.
Applies to: All Kubernetes versions
What it means
This condition is not set by the kubelet but by whichever component is responsible for the node's network configuration — a cloud controller manager configuring routes for the node's pod CIDR, or a network plugin doing the equivalent. While it is true, the node cannot carry pod traffic correctly, and the scheduler avoids it. On a newly joined node it is expected and clears within a minute or two. When it persists, the component that clears it has either not run or has failed, and the investigation belongs there rather than on the node itself.
Most common causes
- The cloud controller manager has not yet configured routes for the node.
- The cloud controller manager lacks permission to modify the route table.
- A route table that has reached its provider limit on entries.
- The network plugin has not completed setup on the node.
- A node whose pod CIDR was not allocated, so there is nothing to route.
- A cloud API outage preventing route configuration.
How to diagnose it
- Read the condition's reason and message:
kubectl describe node NODE. - Check the cloud controller manager's logs for that node.
- Confirm the node has a pod CIDR:
kubectl get node NODE -o jsonpath='{.spec.podCIDR}'. - Check the cloud route table for an entry covering that CIDR.
- Check whether several nodes are affected, which points at permissions or a limit rather than at one node.
How to fix it
- Grant the cloud controller manager the permissions it needs to manage routes.
- Raise the route table's entry limit, or move to a CNI mode that does not require a route per node — most overlay and eBPF-based plugins avoid this limit entirely.
- Restart or repair the network plugin on the node.
- Ensure pod CIDR allocation is enabled and has address space remaining.
- Wait, if the node has only just joined and nothing else is wrong.
Notes
Cloud route table limits are a hard ceiling on cluster size for CNI configurations that need one route per node. Hitting it looks like a node problem and is actually a cluster architecture constraint, which is worth knowing before a cluster grows into it.
Related
- network plugin is not ready — The node has no usable CNI configuration
- NotReady — The node is not accepting work
Sources
- Kubernetes documentation — Node Status
- Kubernetes documentation — Cluster Networking
- Kubernetes documentation — Network Plugins