Snapshot Controller

Status and Releases

Git Repository: https://github.com/kubernetes-csi/external-snapshotter

Status: GA v4.0.0+

When Volume Snapshot is promoted to Beta in Kubernetes 1.17, the CSI external-snapshotter sidecar controller is split into two controllers: a snapshot-controller and a CSI external-snapshotter sidecar. See the following table for snapshot-controller release information.

Supported Versions

Latest stable releaseBranchMin CSI VersionMax CSI VersionContainer ImageMin K8s VersionMax K8s VersionRecommended K8s Version
external-snapshotter v6.3.0release-6.2v1.0.0-registry.k8s.io/sig-storage/csi-snapshotter:v6.2.1v1.20-v1.24
external-snapshotter v6.2.2release-6.2v1.0.0-registry.k8s.io/sig-storage/csi-snapshotter:v6.2.1v1.20-v1.24

Unsupported Versions

Latest stable releaseBranchMin CSI VersionMax CSI VersionContainer ImageMin K8s VersionMax K8s VersionRecommended K8s Version
external-snapshotter v6.1.0release-6.1v1.0.0-registry.k8s.io/sig-storage/csi-snapshotter:v6.1.0v1.20-v1.24
external-snapshotter v6.0.1release-6.0v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v6.0.1v1.20-v1.24
external-snapshotter v5.0.1release-5.0v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v5.0.1v1.20-v1.22
external-snapshotter v4.2.1release-4.2v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v4.2.1v1.20-v1.22
external-snapshotter v4.1.1release-4.1v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v4.1.1v1.20-v1.20
external-snapshotter v4.0.1release-4.0v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v4.0.1v1.20-v1.20
external-snapshotter v3.0.3 (beta)release-3.0v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v3.0.3v1.17-v1.17
external-snapshotter v2.1.4 (beta)release-2.1v1.0.0-registry.k8s.io/sig-storage/snapshot-controller:v2.1.4v1.17-v1.17

For more information on the CSI external-snapshotter sidecar, see this external-snapshotter page.

Description

The snapshot controller will be watching the Kubernetes API server for VolumeSnapshot and VolumeSnapshotContent CRD objects. The CSI external-snapshotter sidecar only watches the Kubernetes API server for VolumeSnapshotContent CRD objects. The snapshot controller will be creating the VolumeSnapshotContent CRD object which triggers the CSI external-snapshotter sidecar to create a snapshot on the storage system.

The snapshot controller will be watching for VolumeGroupSnapshot and VolumeGroupSnapshotContent CRD objects when Volume Group Snapshot support is enabled via the --enable-volume-group-snapshots option.

For detailed snapshot beta design changes, see the design doc here.

For detailed information about volume snapshot and restore functionality, see Volume Snapshot & Restore.

For detailed information about volume group snapshot and restore functionality, see Volume Snapshot & Restore.

For detailed information (binary parameters, RBAC rules, etc.), see https://github.com/kubernetes-csi/external-snapshotter/blob/release-6.2/README.md.

Deployment

Kubernetes distributors should bundle and deploy the controller and CRDs as part of their Kubernetes cluster management process (independent of any CSI Driver).

If your cluster does not come pre-installed with the correct components, you may manually install these components by executing the following steps.

git clone https://github.com/kubernetes-csi/external-snapshotter/
cd ./external-snapshotter
git checkout release-6.2
kubectl kustomize client/config/crd | kubectl create -f -
kubectl -n kube-system kustomize deploy/kubernetes/snapshot-controller | kubectl create -f -