Block Storage Volume Features

DigitalOcean Kubernetes (DOKS) is a managed Kubernetes service that lets you deploy Kubernetes clusters without the complexities of handling the control plane and containerized infrastructure. Clusters are compatible with standard Kubernetes toolchains and integrate natively with DigitalOcean Load Balancers and block storage volumes.

Block storage volumes are integrated into DOKS by leveraging the CSI specification. DigitalOcean's CSI plugin implements the specification to provide a number of volume-related features.

Support

The availability of a specific CSI feature depends on the employed DOKS version.

The table below outlines the minimum DOKS versions required to use a particular feature. An omitted version supports a feature if it is higher than the latest minimum version listed for that feature. For instance, DOKS version 1.17 supports raw block volumes because it is higher than the latest minimum version 1.16.2-do.3.

Feature Description Available From
Volume Expansion Resize a volume to increase the available disk space 1.16.2-do.3
Raw Block Volumes Use a volume as a block device 1.14.8-do.3, 1.15.5-do.3, 1.16.2-do.3
Volume Statistics Retrieve basic volume metrics (consumable by systems such as Prometheus) 1.14.8-do.3, 1.15.5-do.3, 1.16.2-do.3
Volume Snapshots Create and restore from snapshots 1.10.5 to 1.17 (alpha), 1.18.3+ (beta)

Volume Snapshots Migration from Alpha to Beta

Prior to DOKS 1.18, volume snapshots were supported in the alpha version only. Starting with 1.18, support for alpha volume snapshots has been removed amd replaced with support for beta volume snapshots. Kubernetes does not support simultaneous usage of both API versions and does not provide any official means to migrate volume snapshots from alpha to beta.

To upgrade snapshots in tandem with cluster upgrades, we have built a custom mechanism to automatically convert snapshots from the alpha version to the beta version. During the upgrade of a DOKS cluster from any 1.17 version to any 1.18 version, existing snapshot resources (VolumeSnapshotClass, VolumeSnapshotContent, VolumeSnapshot) will be upgraded automatically. Beta volume snapshots will continue to be available under the same names and namespaces.

For the conversion process to complete successfully, you must ensure that a number of prerequisites are met prior to the start of an upgrade to 1.18:

  1. No new volume snapshots are being added to the cluster. In particular, any running processes that generate volume snapshots automatically should be temporarily disabled.
  2. All existing volume snapshots must be in a stable state and must not be in the process of being created, deleted, or in an error state. The readyToUse status field on a volume snapshot resource must be true, deleted volume snapshots must not be available in the cluster anymore, and no error events must be observable on any volume snapshot.

After a successful upgrade to 1.18, verify that your converted volume snapshots work as expected. You can do this by restoring a volume from a snapshot and validating that the resulting data is available and complete.

For further questions or concerns, please contact the Support team.