forked from openshift/openshift-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Document ephemeral storage (tech preview in 3.10)
- Loading branch information
1 parent
314df53
commit a251d4a
Showing
12 changed files
with
543 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
[[architecture-additional-concepts-ephemeral-storage]] | ||
= Ephemeral Local Storage | ||
{product-author} | ||
{product-version} | ||
:data-uri: | ||
:icons: | ||
:experimental: | ||
:toc: macro | ||
:toc-title: | ||
:prewrap!: | ||
|
||
toc::[] | ||
|
||
*Note: this only applies if the ephemeral-storage tech preview in | ||
{product-title} 3.10 has been enabled. This is disabled by default; | ||
to enable this feature, please see | ||
xref:../../install_config/configuring_ephemeral.adoc[Configuring for | ||
Ephemeral Storage].* | ||
|
||
== Overview | ||
|
||
In addition to persistent storage, pods and containers may require | ||
ephemeral (transient) local storage for their operation. 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 {product-title} 3.10, ephemeral local storage was exposed to | ||
pods via the container’s writable layer, logs directory, and EmptyDir | ||
volumes. Pods use ephemeral local storage for scratch space, caching | ||
and logs. There are many issues related to the lack of local storage | ||
accounting and isolation, including: | ||
|
||
- 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 up the local storage, | ||
after which no new pods will be admitted until sufficient storage | ||
has been reclaimed. | ||
|
||
Unlike persistent volumes, ephemeral storage is unstructured and | ||
shared (the space, not the actual data) between all pods running on a | ||
node, in addition to other uses by the system, the container runtime, | ||
and {product-title}. The ephemeral storage framework allows pods to | ||
specify their transient local storage needs, and {product-title} to | ||
schedule pods where appropriate and protect the node against excessive | ||
use of local storage. | ||
|
||
While the ephemeral storage framework allows administrators and | ||
developers to better manage this local storage, it does not provide | ||
any promises related to I/O throughput and latency. | ||
|
||
== Types of Ephemeral Storage | ||
|
||
Ephemeral local storage is always made available in the primary | ||
partition. There are two basic ways of creating the primary | ||
partition. | ||
|
||
=== Root | ||
|
||
This partition holds the kubelet’s root directory (`/var/lib/origin` | ||
by default) and `/var/log` directory. This partition may be shared | ||
between user pods, OS and Kubernetes system daemons. This partition | ||
can be consumed by pods via EmptyDir volumes, container logs, image | ||
layers and container writable layers. Kubelet will manage shared | ||
access and isolation of this partition. This partition is "ephemeral" | ||
and applications cannot expect any performance SLAs (Disk IOPS for | ||
example) from this partition. | ||
|
||
=== Runtime | ||
|
||
This is an optional partition which runtimes can use for overlay | ||
filesystems. {product-title} will attempt to identify and provide | ||
shared access along with isolation to this partition. Container image | ||
layers and writable layers are stored here. If the runtime partition | ||
exists, `root` partition will not hold any image layer or other writable storage. | ||
|
||
_Note that when using devicemapper to provide runtime storage, | ||
containers' copy-on-write layer is not accounted for in ephemeral | ||
storage management. Using Overlay storage will allow this use of | ||
ephemeral storage to be monitored. |
Oops, something went wrong.