Overview

OKD can be configured to allow management of ephemeral storage of pod and container working data. While containers have been able to utilize writable layers, logs directories, and EmptyDir volumes, this storage has been subject to a number of limitations, as discussed here.

Ephemeral storage management permits administrators to limit the resources consumed by individual pods and containers, and for pods and containers to specify requests and limits on their use of such ephemeral storage. This is a technology preview and is disabled by default.

This technology preview does not change any of the mechanisms for making local storage available in OKD; the existing mechanisms, root directory or runtime directory, still apply. This technology preview only provides a mechanism for managing the use of this resource.

Enabling ephemeral storage

To enable ephemeral storage:

  1. Edit or create the master configuration file on all masters, /etc/origin/master/master-config.yaml by default, and add LocalStorageCapacityIsolation=true in the apiServerArguments and controllerArguments sections:

    apiServerArguments:
       feature-gates:
       - LocalStorageCapacityIsolation=true
    ...
    
     controllerArguments:
       feature-gates:
       - LocalStorageCapacityIsolation=true
    ...
  2. Edit the ConfigMap for all nodes to enable the LocalStorageCapacityIsolation on the command line. You can identify the ConfigMaps that need to be edited as follows:

    $ oc get cm -n openshift-node
    NAME                  DATA      AGE
    node-config-compute   1         52m
    node-config-infra     1         52m
    node-config-master    1         52m

    For each of these maps, node-config-compute, node-config-infra, and node-config-master, you need to add the feature gate:

    oc edit cm node-config-master -n openshift-node

    If there is already a feature-gates: declaration, add the following text to the list of feature gates:

    ,LocalStorageCapacityIsolation=true

    If there is no feature-gates: declaration, add the following section:

      feature-gates:
      - LocalStorageCapacityIsolation=true
  3. Repeat for node-config-compute, node-config-infra, and any other ConfigMaps.

  4. Restart OKD and delete the container running the apiserver.

Omitting any of these steps may result in ephemeral storage management not being enabled.