How to Create Volume Snapshots in Kubernetes Clusters

Validated on 20 Aug 2019 • Last edited on 18 Dec 2024

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.

In Kubernetes, a volume snapshot is a point-in-time copy of the contents of a Kubernetes cluster. You can use snapshots to back up a cluster’s data or copy the data to another resource without needing to create a new volume.

You must have an existing volume in use in your cluster, which you can create by creating a PersistentVolumeClaim (PVC). For the purposes of this tutorial, presume we have already created a PVC by calling kubectl create -f your_pvc_file.yaml with a YAML file that looks like this:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-do-test-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: do-block-storage

Create a Snapshot of a Volume

To create a snapshot of a volume, call kubectl create -f your_snapshot_file.yaml and specify the desired PVC. Here’s an example of a YAML file that defines a snapshot:

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: csi-do-test-snapshot
spec:
  source:
    persistentVolumeClaimName: csi-do-test-pvc

If you are using a DigitalOcean Kubernetes version prior to 1.18, the snapshot resource was supported in the alpha version only and used different fields:

apiVersion: snapshot.storage.k8s.io/v1alpha1
kind: VolumeSnapshot
metadata:
  name: csi-do-test-snapshot
spec:
  source:
    name: csi-do-test-pvc
    kind: PersistentVolumeClaim

You can now observe the state of your volumes and snapshots in the DigitalOcean Control Panel or by using the following command:

kubectl get pvc && kubectl get pv && kubectl get volumesnapshot

More Information

We can't find any results for your search.

Try using different keywords or simplifying your search terms.