gke-backup-dr · git:20260710.9319bce · 2026-07-10 · sha256 bb47e7b9a6995c58
gke-backup-dr git:20260710.9319bceA
Immutable. This exact content is served forever at /api/v1/blob/bb47e7b9a6995c58.
---
name: gke-backup-dr
description: Workflows for configuring Backup for GKE and disaster recovery.
---
# GKE Backup & Disaster Recovery Skill
This skill provides workflows for protecting your stateful workloads on GKE using Backup for GKE.
## Workflows
### 1. Enable Backup for GKE
Backup for GKE must be enabled on the cluster level.
**Command:**
```bash
gcloud container clusters update <cluster-name> \
--enable-gke-backup \
--region <region>
```
### 2. Create a Backup Plan
A Backup Plan defines what to back up, when, and for how long.
**Command to create a backup plan:**
```bash
gcloud container backup-restore backup-plans create <plan-name> \
--cluster=<cluster-name> \
--region=<region> \
--retention-days=<days> \
--cron-schedule="<cron-expression>" \
--all-namespaces
```
> [!NOTE]
> You can replace `--all-namespaces` with `--included-namespaces=<namespace1>,<namespace2>` to back up specific namespaces instead of all of them.
**Encryption Note**: You can specify a Customer-Managed Encryption Key (CMEK) to encrypt backups. Add `--backup-encryption-key=<key-resource-name>` to the `create` command.
### 3. Create a Manual Backup
Trigger a backup immediately outside the schedule.
**Command:**
```bash
gcloud container backup-restore backups create <backup-name> \
--backup-plan=<plan-name> \
--region=<region>
```
### 4. Restore from Backup
Restore a workload or cluster from a backup.
**Command to create a restore plan:**
```bash
gcloud container backup-restore restore-plans create <restore-plan-name> \
--cluster=<target-cluster-name> \
--region=<region> \
--backup-plan=<source-backup-plan-name> \
--cluster-resource-conflict-policy=USE_EXISTING_VERSION \
--namespaced-resource-restore-mode=FAIL_ON_CONFLICT
```
**Execute the restore:**
```bash
gcloud container backup-restore restores create <restore-name> \
--restore-plan=<restore-plan-name> \
--backup=<backup-name> \
--region=<region>
```
## Best Practices
1. **Automate Backups**: Always use a cron schedule for production workloads.
2. **Test Restores**: Regularly test restoring backups to a separate namespace or cluster to ensure data integrity.
3. **Cross-Region DR**: Consider storing backups in a different region or setting up a cross-region restore plan for disaster recovery.
4. **Secure Backups**: Use Customer-Managed Encryption Keys (CMEK) to encrypt backups for compliance and security.