Files

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

References