Configure ephemeral storage quotas

Updated at:

Without disk quotas, a single pod can exhaust a node's ephemeral storage, triggering kubelet evictions that disrupt other workloads on the same node. Ephemeral storage quotas let you set per-pod request and limit values that control how much temporary disk space each pod can use, keeping workloads stable across the cluster.

How ephemeral storage works

Every pod uses temporary disk space -- called ephemeral storage -- for writable container layers, container logs, and emptyDir volumes. This storage is tied to the pod lifecycle: when a pod is deleted or migrated, its ephemeral storage is released and the data is lost.

What counts toward ephemeral storage

The kubelet measures the following when enforcing quotas:

  • Writable container layers (rootfs)

  • Container log output

  • emptyDir volumes (except tmpfs-backed emptyDir volumes)

Note

Container images and tmpfs emptyDir volumes do not count against ephemeral storage limits.

Request and limit

Kubernetes provides two settings for ephemeral storage on each pod:

SettingPurposeBehavior
RequestMinimum guaranteed disk spaceThe scheduler only places the pod on a node with enough available ephemeral storage to satisfy the request.
LimitMaximum allowed disk usageIf the pod's ephemeral storage usage exceeds the limit, the kubelet evicts the pod.

The limit must be greater than or equal to the request.

Common use cases

  • Store the file systems of containers

  • Container log storage

  • Shared emptyDir volumes between containers in the same pod

Set quotas in the EDAS console

Set ephemeral storage quotas when you create an application, deploy an application, or change application specifications.

Note

The default value 0 means unlimited ephemeral storage. If you leave the limit unset, the node's available disk capacity determines the effective maximum.

Create an application

  1. Log on to the EDAS console.

  2. In the left-side navigation pane, choose Application Management > Applications.

  3. In the top navigation bar, select a region. In the upper part of the Applications page, select a microservices namespace from the Microservices Namespace drop-down list.

  4. Click Create Application.

  5. In the Basic Information step, set Cluster Type to Kubernetes Clusters and click Next.

  6. In the Configurations step, find the Single-pod Resource Quota section. Set Ephemeral Storage Request (GB) and Ephemeral Storage Limit (GB) to appropriate values for your workload.

Deploy an application

  1. Log on to the EDAS console.

  2. In the left-side navigation pane, choose Application Management > Applications.

  3. In the top navigation bar, select a region. In the upper part of the Applications page, select a microservices namespace from the Microservices Namespace drop-down list. Click the name of the application to manage.

  4. In the upper-right corner of the application overview page, choose Deploy > Deploy.

  5. In the Single-pod Resource Quota section of the release page, set Ephemeral Storage Request (GB) and Ephemeral Storage Limit (GB).

Change application specifications

  1. Log on to the EDAS console.

  2. In the left-side navigation pane, choose Application Management > Applications.

  3. In the top navigation bar, select a region. In the upper part of the Applications page, select a microservices namespace from the Microservices Namespace drop-down list. Click the name of the application to manage.

  4. In the Deployment specifications section of the application overview page, click the edit icon next to TemStorage.

  5. In the Ephemeral-Storage(GB) section of the Change specifications dialog box, set Resource reservation (request) and Resource constraints (limit).

What's next