Prerequisite
It is the responsibility of the Kubernetes distribution to deploy the snapshot controller as well as the related custom resource definitions.
For more information, see CSI Volume Snapshots.
If your Kubernetes Distribution Does Not Bundle the Snapshot Controller
You may manually install these components by executing the following steps.
Note that the snapshot controller YAML files mentioned below deploy into the default
namespace.
Prerequisite
For general use, update the snapshot controller YAMLs with an appropriate namespace prior to installing.
For example, on a vanilla Kubernetes cluster, update the namespace from
default
tokube-system
prior to issuing thekubectl create
command.
Install the Snapshot Beta CRDs:
- Download the files from https://github.com/kubernetes-csi/external-snapshotter/tree/release-4.0/client/config/crd
- Run
kubectl create -f client/config/crd
. - Do this once per cluster.
Install the Common Snapshot Controller:
- Download the files from https://github.com/kubernetes-csi/external-snapshotter/tree/release-4.0/deploy/kubernetes/snapshot-controller
- Update the namespace to an appropriate value for your environment (e.g.
kube-system
) - Run
kubectl create -f deploy/kubernetes/snapshot-controller
. - Do this once per cluster.
See the Usage section from the kubernetes external-snapshotter git repo for additional information.
Add a Default VolumeSnapshotClass
Ensure the availability of the Snapshot Beta CRDs. Afterwards create a default VolumeSnapshotClass
.
kind: VolumeSnapshotClass
apiVersion: snapshot.storage.k8s.io/v1beta1
metadata:
name: longhorn
driver: driver.longhorn.io
deletionPolicy: Delete