Ephemeral storage overview
Ephemeral storage (emptyDir volumes) provides:- Temporary storage that exists for the lifetime of a pod.
- Faster I/O if using memory-backed storage.
- No persistence across pod restarts.
- Shared access between containers in the same pod.
APC 1.x runs every Airflow container with
readOnlyRootFilesystem: true. To keep Airflow writable where it needs to be, the chart mounts emptyDir volumes at specific subpaths under /usr/local/airflow, such as /usr/local/airflow/logs, and at /usr/local/airflow/dags when using git-sync or the emptyDir Dag mode. Depending on log volume and Dag size, these volumes can consume significant ephemeral storage and exceed namespace limits. Factor this into your ephemeral storage sizing. For details on adding more writable directories, see Read-only root filesystem.Configurable volumes
Dags volume (gitSync)
When using git-sync for Dag deployment, Dags are stored in an emptyDir volume.sizeLimit: Maximum storage size (e.g.,1Gi,2Gi).medium: Storage medium.""(empty): Use node’s default storage (disk)."Memory": Use RAM (tmpfs) for faster access.
Logs volume
Task logs can be stored in ephemeral storage when persistence is disabled.- Use larger
sizeLimitfor high-volume task execution. - Avoid
medium: Memoryfor logs unless you have aggressive cleanup. - Enable log groomer sidecar to prevent storage exhaustion.
Redis volume
When Redis persistence is disabled, it uses ephemeral storage.Configuration examples
Development environment
Production environment
High-performance configuration
For latency-sensitive workloads:Storage medium comparison
Sizing guidelines
Dags volume
Logs volume
Redis volume
Monitoring storage usage
Check volume usage
Check memory-backed volume
Troubleshooting
Pod eviction due to storage
Symptom: Pods evicted withDiskPressure or ephemeral storage exceeded.
Cause: EmptyDir volume exceeded node’s ephemeral storage limits.
Solution:
- Increase
sizeLimitin emptyDirConfig. - Enable log groomer with shorter retention.
- Switch to persistent storage.
Out of memory with memory-backed volumes
Symptom: Pods OOMKilled when usingmedium: Memory.
Cause: Memory-backed emptyDir counts against container memory limits.
Solution:
- Increase container memory limits.
- Reduce
sizeLimiton memory-backed volumes. - Switch to disk-backed storage.
Slow Dag parsing
Symptom: Dag processing takes too long. Cause: Disk I/O latency on Dag volume. Solution:- Use
medium: Memoryfor Dag volume. - Ensure sufficient
sizeLimit. - Consider SSD-backed nodes.
Best practices
- Set explicit
sizeLimitto prevent unbounded storage growth. - Use memory sparingly for performance-critical, small volumes only.
- Monitor usage and set alerts for storage utilization.
- Use persistent storage for production logs since ephemeral storage loses logs on restart.
- Size for peak usage to account for burst workloads.
- Enable log groomer to prevent log accumulation.