DigitalOcean Volumes Block Storage Features
Validated on 23 Jun 2020 • Last edited on 31 Oct 2023
DigitalOcean Kubernetes (DOKS) is a Kubernetes service with a fully managed control plane, high availability, and autoscaling. DOKS integrates with standard Kubernetes toolchains and DigitalOcean’s load balancers, volumes, CPU and GPU Droplets, API, and CLI.
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.12.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 and 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:
- No new volume snapshots are being added to the cluster. In particular, any running processes that generate volume snapshots automatically should be temporarily disabled.
- 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 betrue
, 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, contact the Support team.