Backup and Restore
Learn how to backup and restore your KubeZero platform and applications.
Overview
KubeZero provides comprehensive backup and restore capabilities for both platform components and application data.
Backup Strategy
Implement a comprehensive backup strategy:
- Platform Configuration: GitOps repository backups
- Application Data: Persistent volume backups
- Cluster State: etcd backups
- Secrets: Encrypted secret backups
Automated Backups
Configure automated backup schedules:
# Backup configuration
backup:
enabled: true
schedule: "0 2 * * *" # Daily at 2 AM
retention: 30d
storage:
provider: s3
bucket: kubezero-backups
region: us-west-2
Platform Backup
GitOps Repository
Your platform configuration is version controlled:
# Backup GitOps repository
git clone https://github.com/your-org/kubezero-config.git
cd kubezero-config
git push --mirror https://backup-location/kubezero-config.git
Cluster State
Backup cluster state and configurations:
# Backup cluster resources
kubezero backup cluster --output cluster-backup.tar.gz
# Backup specific namespaces
kubezero backup namespace --namespace production
Application Data Backup
Persistent Volumes
Backup persistent volume data:
# Volume snapshot configuration
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: database-snapshot
spec:
source:
persistentVolumeClaimName: database-pvc
Database Backups
Configure database-specific backups:
# PostgreSQL backup example
apiVersion: batch/v1
kind: CronJob
metadata:
name: postgres-backup
spec:
schedule: "0 1 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: postgres-backup
image: postgres:14
command:
- pg_dump
- -h
- postgres-service
- -U
- postgres
- -d
- myapp
Disaster Recovery
Plan for disaster recovery scenarios:
Recovery Time Objective (RTO)
Target recovery times:
- Platform restoration: < 2 hours
- Application restoration: < 1 hour
- Data restoration: < 30 minutes
Recovery Point Objective (RPO)
Acceptable data loss:
- Configuration: 0 (GitOps)
- Application data: < 1 hour
- Logs: < 15 minutes
Restore Procedures
Platform Restore
Restore KubeZero platform:
# Restore from backup
kubezero restore cluster --input cluster-backup.tar.gz
# Verify platform health
kubezero status --all
Application Restore
Restore application data:
# Restore persistent volumes
kubectl apply -f volume-snapshots.yaml
# Restore application manifests
kubezero app deploy --from-backup app-backup.yaml
Testing Backups
Regularly test backup and restore procedures:
- Automated Testing: Run monthly restore tests
- Documentation: Keep procedures updated
- Training: Train team on restore procedures
- Validation: Verify data integrity
Backup Security
Secure your backups:
- Encryption: Encrypt backups at rest and in transit
- Access Control: Limit backup access
- Audit: Log backup and restore activities
- Retention: Follow data retention policies
Monitoring
Monitor backup operations:
- Backup success/failure rates
- Backup completion times
- Storage utilization
- Restore test results
For detailed backup configuration, see the backup reference.