Snapshot Controller
The snapshot controller is a Kubernetes component that manages the lifecycle of volume snapshots. It works in conjunction with CSI drivers to enable backup and restore functionality for persistent volumes.
Architecture
The snapshot functionality in Kubernetes is split into two components:
- Snapshot Controller (this service): Cluster-wide controller that manages VolumeSnapshot resources
- CSI Snapshotter Sidecar: Deployed with each CSI driver (e.g., Longhorn) to perform actual snapshot operations
Installation
This service is installed automatically by Wild Cloud when setting up cluster services. It deploys:
- The snapshot-controller deployment (2 replicas with leader election)
- Required RBAC permissions
- VolumeSnapshot CRDs (if not already present)
Dependencies
- Requires a CSI driver with snapshot support (e.g., Longhorn)
- Requires VolumeSnapshot CRDs (included with this service)
Verification
After installation, verify the controller is running:
kubectl get pods -n kube-system | grep snapshot-controller
kubectl api-resources | grep snapshot
Usage
Once installed, you can create VolumeSnapshots for any PVC managed by a CSI driver:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: my-snapshot
namespace: default
spec:
volumeSnapshotClassName: longhorn-snapshot-class
source:
persistentVolumeClaimName: my-pvc