Kubernetes "Insufficient ephemeral-storage" FailedScheduling in CI
The scheduler could not place the pod because no node has enough free ephemeral (local scratch) storage to satisfy its requests.ephemeral-storage. It is the disk analogue of the cpu/memory insufficiency - the pod stays Pending until a node with room exists.
What this error means
A pod is stuck Pending with a FailedScheduling event: 0/N nodes are available: N Insufficient ephemeral-storage. The request for local disk exceeds what any node can currently offer.
Warning FailedScheduling default-scheduler 0/3 nodes are available:
3 Insufficient ephemeral-storage.Common causes
ephemeral-storage request larger than node free disk
The pod requests more local scratch storage than any node has free (existing pods plus this request exceed allocatable ephemeral-storage), so none can host it.
Small node disks or filled scratch space
Nodes with small root/scratch volumes, or disks already consumed by images/logs/other pods, leave too little allocatable ephemeral-storage for the request.
How to fix it
Compare the request to node ephemeral-storage
See the pod’s ephemeral-storage request against what nodes have allocatable.
kubectl get pod <pod> -o jsonpath='{.spec.containers[*].resources.requests.ephemeral-storage}'; echo
kubectl describe nodes | grep -i ephemeral-storageRight-size the request or add disk
- Lower
requests.ephemeral-storageto the workload’s real scratch need. - Move large scratch/temp data to a PVC (emptyDir on a volume / persistent volume) instead of node ephemeral storage.
- Use nodes with larger local disks, or free space (prune images/logs) on existing nodes.
How to prevent it
- Base
requests.ephemeral-storageon measured scratch usage, not guesses. - Keep large temp/data off the container filesystem; use a PVC.
- Size node disks for peak image + scratch + log footprint.