Enable snapshot functionality for CSI volumes - Amazon EKS

Help improve this page

Want to contribute to this user guide? Scroll to the bottom of this page and select Edit this page on GitHub. Your contributions will help make our user guide better for everyone.

Enable snapshot functionality for CSI volumes

When using a Container Storage Interface (CSI), snapshot functionality allows for point-in-time copies of your data. For this capability to work in Kubernetes, you need both a CSI driver with snapshot support (such as the Amazon EBS CSI driver) and a CSI snapshot controller. The snapshot controller is available either as an Amazon EKS managed add-on or as a self-managed installation.

Here are some things to consider when using the CSI snapshot controller.

  • The snapshot controller must be installed alongside a CSI driver with snapshot functionality. For example, the Amazon EBS CSI driver implements snapshotting as a separate container named csi-snapshotter. This container can create Amazon EBS snapshots of Amazon EBS CSI managed volumes. For installation instructions of the Amazon EBS CSI driver, see Store Kubernetes volumes with Amazon EBS.

  • Kubernetes doesn't support snapshots of volumes being served via CSI migration, such as Amazon EBS volumes using a StorageClass with provisioner kubernetes.io/aws-ebs. Volumes must be created with a StorageClass that references the CSI driver provisioner, ebs.csi.aws.com. For more information about CSI migration, see Amazon EBS CSI migration frequently asked questions.

We recommend that you install the CSI snapshot controller through the Amazon EKS managed add-on. To add an Amazon EKS add-on to your cluster, see Creating an Amazon EKS add-on. For more information about add-ons, see Amazon EKS add-ons.

Alternatively, if you want a self-managed installation of the Amazon EBS CSI snapshot controller, see Usage in the upstream Kubernetes external-snapshotter on GitHub.