The volume group snapshot feature, introduced as an Alpha in Kubernetes 1.27 has now reached Beta in version 1.32. This functionality enables crash-consistent snapshots of multiple volumes using group snapshot extension APIs. Kubernetes organizes PersistentVolumeClaims (PVCs) into groups via a label selector for snapshotting. The feature’s primary goal is to facilitate workload recovery by restoring a collection of snapshots to new volumes from a crash-consistent recovery point.
This feature is supported exclusively for CSI volume drivers.
Certain storage systems can create crash-consistent snapshots of multiple volumes simultaneously. These “group snapshots” ensure that all volumes are captured at the same point in time. Group snapshots can either populate new volumes with the snapshot data or restore existing volumes to a previous state.
The ability to take consistent group snapshots is beneficial for applications that span multiple volumes, ensuring that all components are captured at the same point in time. Although it is possible to manually quiesce applications before taking individual snapshots, this process can be time-consuming or impractical in certain scenarios. Consequently, users may prefer to conduct regular backups with application quiescence while relying on consistent group snapshots for more frequent backups.
Read Also: Data Management in Kubernetes with Portworx
Kubernetes manages volume group snapshots using three API resources:
These APIs are implemented as CustomResourceDefinitions (CRDs) and require installation in Kubernetes clusters for CSI driver compatibility.
The implementation of volume group snapshots, part of the external-snapshotter repository, involved updates to multiple components:
The volume snapshot controller and CRDs operate at the cluster level, while the snapshotter sidecar is deployed with each CSI driver. Kubernetes encourages distributors to include the snapshot controller and CRDs in their cluster management processes as a default addon.
--enable-volumegroup-snapshot
flag was replaced with a feature gate (--feature-gates=CSIVolumeGroupSnapshot=true
). The feature is disabled by default.To create a group snapshot:
VolumeGroupSnapshotClass
specifying the CSI driver and provisioning rules.VolumeGroupSnapshot
, which either dynamically provisions the snapshot or references a pre-existing VolumeGroupSnapshotContent
.For dynamic provisioning, use a selector to group PVCs by labels. The creation process also generates individual volume snapshots and a VolumeGroupSnapshotContent
with references to the underlying storage.
To import an existing group snapshot, manually create the following:
VolumeSnapshotContent
objects for each individual snapshot.VolumeGroupSnapshotContent
with references to the individual snapshot handles.VolumeGroupSnapshot
referencing the VolumeGroupSnapshotContent
.Restore involves creating new PVCs from the individual snapshots in the group. Repeat the process for each snapshot to fully restore the application state.
To implement support, CSI drivers must:
CREATE_DELETE_GET_VOLUME_GROUP_SNAPSHOT
capability.The Kubernetes project recommends bundling the snapshot controller and CRDs with cluster management processes, independent of CSI drivers. The external-snapshotter sidecar monitors API server changes and triggers CSI operations for group snapshots.
Current limitations include:
Future releases aim to gather feedback and increase adoption to advance the feature to General Availability (GA).
Upgrading to Windows 11 version 24H2 brings numerous benefits, including performance boosts, important security patches,…
DeepSeek is an AI firm located in Hangzhou, China, founded in May 2023 by Liang…
In the context of 5G networks and beyond, radio access network (RAN) virtualization is a…
Zero Trust Network Access (ZTNA) has emerged as a cornerstone of robust cybersecurity strategies in…
Installing Ubuntu on a Windows operating system can be a great way to explore Linux…
2025 is rapidly becoming the "Year of the AI Agent," with leading tech companies like…
View Comments
Looking forward to seeing how this feature evolves as it moves toward general availability.
Really cool