gke-backup-dr
Protect stateful GKE workloads with automated backup and disaster recovery using Backup for GKE. This skill captures Kubernetes resource metadata (manifests, configurations, secrets) and underlying persistent volume data. It enables creating backup plans with retention and cron schedules, triggering manual backups, and executing restores to target clusters with configurable conflict policies. Ideal for ensuring data integrity, meeting compliance requirements, and enabling rapid recovery in production GKE clusters. The skill also provides best practices for CMEK encryption, namespace scoping, application consistency, and CSI volume snapshots.
npx skills add https://github.com/google/skills --skill gke-backup-drBefore / After Comparison
1 组Without this skill, users manually write complex scripts to backup and restore stateful GKE workloads, handling namespaces, persistent volumes, etc., which is error-prone and time-consuming. A full restore typically takes over 60 minutes, and data consistency is hard to guarantee.
This skill automates backup and restore using Backup for GKE, capturing Kubernetes resource metadata and persistent volume data. It enables one-click backup plan creation and restore execution, reducing restore time to 10 minutes with guaranteed data consistency via CSI snapshots and application quiescing.
GKE Backup & Disaster Recovery
Protects stateful GKE workloads using Backup for GKE. Backup for GKE natively captures both Kubernetes resource metadata (manifests, configurations, and secrets) and the underlying persistent volume (PV) data.
CLI Reference
# Enable GKE Backup addon (Slow cluster-level update)
gcloud container clusters update <CLUSTER_NAME> --enable-gke-backup --region <REGION> --quiet
# Create Backup Plan
gcloud container backup-restore backup-plans create <PLAN_NAME> \
--cluster=<CLUSTER_NAME> --location=<REGION> \
--retention-days=<DAYS> --cron-schedule="<CRON>" --all-namespaces --quiet
# Trigger Manual Backup
gcloud container backup-restore backups create <BACKUP_NAME> \
--backup-plan=<PLAN_NAME> --location=<REGION> --quiet
# Create Restore Plan
gcloud container backup-restore restore-plans create <RESTORE_PLAN_NAME> \
--cluster=<TARGET_CLUSTER_NAME> --location=<REGION> --backup-plan=<SOURCE_BACKUP_PLAN_NAME> \
--cluster-resource-conflict-policy=USE_EXISTING_VERSION --namespaced-resource-restore-mode=FAIL_ON_CONFLICT --quiet
# Execute Restore
gcloud container backup-restore restores create <RESTORE_NAME> \
--restore-plan=<RESTORE_PLAN_NAME> --backup=<BACKUP_NAME> --location=<REGION> --quiet
# Verify Restore Status
gcloud container backup-restore restores describe <RESTORE_NAME> --location=<REGION>
Best Practices
- CMEK Encryption: Encrypt backup plans using Customer-Managed Encryption
Keys:
--backup-encryption-key=<KEY>. - Scope: Prefer backing up specific namespaces rather than the entire
cluster:
--included-namespaces=<ns1>,<ns2>. - Application Consistency: Recommend quiescing the database or pausing application writes (e.g. using pre-backup hooks or database-specific tools) prior to backups to ensure data integrity.
- CSI Volume Snapshots: Ensure that stateful backups utilize GKE's CSI (Container Storage Interface) driver for volume snapshots to capture persistent volume data.
- Service Terminology: Always explicitly refer to the service as Backup for GKE in your response. This distinguishes it from the broader (but complementary) Google Cloud Backup and Disaster Recovery (DR) Service, as Backup for GKE is built specifically for GKE.
Troubleshooting & Common Pitfalls (CRITICAL)
[!IMPORTANT] Slow Operations: Enabling GKE Backup (
--enable-gke-backup) triggers a slow Google Cloud control plane cluster update that takes several minutes. * Rule: Do not run a terminal loop waiting for the GKE Backup addon to become active. * Action: Provide the command to enable the addon, explain that the operation will proceed in the background, and immediately proceed to write the backup plan configs. Do not block.
User Reviews (0)
Write a Review
No reviews yet
Statistics
User Rating
Rate this Skill