Skip to main content
Talos Linux has a set of system volumes that are used for various purposes, such as storing the system state, ephemeral data, and more. This guide provides an overview of the system volumes and how to configure them. The following system volumes are supported: STATE, EPHEMERAL, IMAGECACHE, ETCD, CRI, KUBELET and LOG. The ETCD, CRI, KUBELET and LOG volumes are backed by a directory under the EPHEMERAL volume by default, but they can be placed on a dedicated partition instead (see Dedicated system volumes).
Note: A volume’s backing (directory vs. dedicated partition) is fixed when the volume is first provisioned and cannot be changed afterwards. The configuration for these volumes is therefore only honored during cluster creation.

EPHEMERAL volume

The EPHEMERAL volume is a system volume that is used for storing ephemeral data, such as container data, downloaded images, logs, and etcd data (for controlplane nodes). By default, this volume is provisioned on the system disk, which is the disk where Talos Linux is installed. It has a minimum size of 2 GiB and automatically grows to utilize the maximum available space on the disk. The EPHEMERAL (/var) volume can be configured through a matching VolumeConfig document, within the machine configuration. If you would like to keep the EPHEMERAL volume on the system disk but limit its size to 40 GiB, you can set the maxSize field to 40GiB:
If you want to create a separate partition for EPHEMERAL on a different disk, you can set the diskSelector field to select the desired disk:
Note: The volume configuration in the machine configuration is only applied when the volume has not been provisioned yet. So applying changes after the initial provisioning will not have any effect.

Dedicated system volumes (ETCD, CRI, KUBELET, LOG)

By default, the ETCD, CRI, KUBELET and LOG volumes are backed by a directory under the EPHEMERAL volume. Each of these volumes can instead be placed on a dedicated partition (optionally encrypted) by adding a VolumeConfig document with provisioning set. Moving a volume to its own partition is useful to:
  • isolate a component’s data so that one volume cannot fill up the whole EPHEMERAL volume (/var),
  • apply independent size limits or quotas per component,
  • place a volume on a separate disk for better performance or durability.
Note: The backing type is permanent — it is chosen when the volume is first provisioned and cannot be changed later. Custom VolumeConfigs for the ETCD, CRI and KUBELET volumes are therefore only honored during cluster creation.
To provision, for example, the KUBELET volume on a dedicated partition, append the following VolumeConfig document to the machine configuration used at cluster creation:
To place the volume on a separate disk, use the diskSelector field, just like for the EPHEMERAL volume:

Mount options

Volumes that remain directory-backed inherit the mount options of the EPHEMERAL volume. Each dedicated partition has its own mount, so the mount.secure option (nosuid, nodev and noexec, enabled by default) can be set independently per volume:

IMAGECACHE volume

This system volume is not provisioned by default, and it only gets created if the Image Cache feature is enabled. See Image Cache configuration for more details.