This topic applies only if you enabled the ephemeral storage technology preview. This feature is disabled by default. To enable this feature, see configuring for ephemeral storage. |
Technology Preview releases are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete, and Red Hat does not recommend using them for production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information see Red Hat Technology Preview Features Support Scope. |
Pods use ephemeral storage for their internal operation such as saving temporary files. The lifetime of this ephemeral storage does not extend beyond the life of the individual pod, and this ephemeral storage cannot be shared across pods.
Prior to OpenShift Container Platform 3.10, ephemeral local storage was exposed to pods through the container’s writable layer, logs directory, and EmptyDir volumes. Issues related to the lack of local storage accounting and isolation include the following:
Pods do not know how much local storage is available to them.
Pods cannot request guaranteed local storage.
Local storage is a best effort resource.
Pods can get evicted due to other pods filling the local storage, after which, new pods are not admitted until sufficient storage has been reclaimed.
Ephemeral storage is still exposed to pods in the same way, but there are new methods for implementing requests and limits on pods' consumption of ephemeral storage.
Management of container logs applies only if using CRI-O as the container runtime and file-based logging for logging. |
It is important to understand that ephemeral storage is shared among all pods in the system, and that OpenShift Container Platform does not provide any mechanism for guaranteeing any level of service beyond the requests and limits established by the administrator and users. For example, ephemeral storage does not provide any guarantees of throughput, I/O operations per second, or any other measure of storage performance.
A node’s local storage can be broken into primary and secondary partitions. Primary partitions are the only ones you can use for ephemeral local storage. There are two supported primary partitions, root and runtime.
Root
Root partitions hold the kubelet’s root directory, /var/lib/kubelet/
by
default, and /var/log/
directory. You can share this partition among pods, the
operating system, and OpenShift Container Platform system daemons. Pods can access this
partition by using EmptyDir volumes, container logs, image layers, and
container writable layers. OpenShift Container Platform manages shared access and isolation
of this partition.
Runtime
Runtime partitions are optional partitions you can use for overlay file systems.
OpenShift Container Platform attempts to identify and provide shared access along with
isolation to this partition. This partition contains container image layers and
writable layers. If the runtime partition exists, the root
partition does not
hold any image layer or writable layers.