Disaster Recovery Module implements backups and disaster recovery for SIGHUP Distribution (SD).
If you are new to SD please refer to the official documentation on how to get started with SD.
Disaster Recovery Module is based on Velero (with Velero Node Agent for volume backups) and on etcd backups.
Velero allows you to back up and restore your cluster resources and persistent volumes, migrate resources between clusters, and replicate your production environment to development and testing environments. When the snapshot-controller is enabled, CSI Snapshot Data Movement provides consistent backups of volume data to a backup storage location.
The etcd backup packages snapshot the cluster's etcd database to an S3 bucket or to a PersistentVolumeClaim, on self-managed clusters where you control etcd.
The module also includes Velero plugins to integrate natively with different cloud providers and use their object storage as the backup backend.
Disaster Recovery Module provides the following packages:
| Package | Version | Description |
|---|---|---|
| velero | v1.18.1 |
Backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes. |
| etcd-backup-s3 | homegrown |
Backup etcd on a remote S3 bucket. |
| etcd-backup-pvc | homegrown |
Backup etcd on a PersistentVolumeClaim. |
The velero package contains the following additional components:
| Component | Description |
|---|---|
| velero-base | Common Velero components shared by all backends. |
| velero-node-agent | Incremental backup and restore of Kubernetes volumes. |
| velero-schedules | Common schedules for backup. |
| snapshot-controller | Enables CSI Snapshot Data Movement support. |
| velero-aws | Plugin to support running Velero on AWS. |
| velero-gcp | Plugin to support running Velero on GCP. |
| velero-azure | Plugin to support running Velero on Azure. |
| velero-on-prem | In-cluster MinIO object storage backend for on-premises clusters. |
The following Terraform modules provision the cloud infrastructure used to persist the backups natively in cloud providers' object storage:
| Terraform Module | Description |
|---|---|
| aws-velero | Creates AWS resources and Kubernetes CRDs to persist backups. |
| azure-velero | Creates Azure resources and Kubernetes CRDs to persist backups. |
| gcp-velero | Creates GCP resources and Kubernetes CRDs to persist backups. |
Click on each package to see its full documentation.
| Kubernetes Version | Compatibility | Notes |
|---|---|---|
1.33.x |
✅ | No known issues |
1.34.x |
✅ | No known issues |
1.35.x |
✅ | No known issues |
Check the compatibility matrix for additional information about previous releases of the modules.
Disaster Recovery Module is part of SIGHUP Distribution (SD) and is deployed automatically by furyctl when you create or update a cluster. You don't need to download, vendor or install its packages manually.
You configure the module under spec.distribution.modules.dr in your furyctl.yaml. The type field selects whether disaster recovery is enabled: none to disable it, or the value matching your cluster kind — eks on EKSCluster, on-premises on KFDDistribution and OnPremises. The velero.backend field selects the storage backend for the backups (minio, externalEndpoint or gcs). The other fields are optional and fall back to sensible defaults.
apiVersion: kfd.sighup.io/v1alpha2
kind: KFDDistribution
spec:
distribution:
modules:
dr:
type: on-premises
velero:
backend: minioSee the configuration reference for your cluster kind for the full list of available options: EKSCluster, KFDDistribution or OnPremises.
To install SD from scratch, follow the Getting started guide.
Before contributing, please read first the Contributing Guidelines.
In case you experience any problem with the module, please open a new issue.
This module is open-source and it's released under the following LICENSE.