准备演示应用
后续教程需要一个可备份、可恢复、可切换的业务对象。建议使用独立命名空间、明确标签和一个带 PVC 的示例应用,这样可以同时验证资源恢复和数据恢复。
推荐命名
本教程使用以下示例值,你可以按环境替换:
| 项目 | 示例值 |
|---|---|
| 源集群 | prod-a |
| 目标集群 | prod-b |
| 命名空间 | demo-bookinfo |
| 应用标签 | app=bookinfo |
| 备份仓库 | minio-dr |
| 自动备份策略 | daily-backup |
| 数据同步策略 | datasync-5m |
| 资源同步策略 | resourcesync-5m |
创建命名空间和工作负载
在源集群创建演示命名空间:
kubectl --context prod-a create namespace demo-bookinfo
kubectl --context prod-a label namespace demo-bookinfo app=bookinfo
部署一个带 PVC 的应用,至少包含:
- Deployment 或 StatefulSet。
- Service。
- ConfigMap 或 Secret。
- PVC。
- 可选 Ingress。
如果已有业务应用,也可以直接选择业务命名空间,但演练环境建议先使用低风险示例应用。
写入验证数据
备份前写入一条容易识别的数据,例如文件、数据库记录或测试接口返回值:
kubectl --context prod-a -n demo-bookinfo exec deploy/<app> -- sh -c \
'date > /data/tutorial-checkpoint.txt'
恢复或切换后,通过同一路径检查数据是否存在。
给资源加标签
如果后续需要按标签控制备份范围,提前给核心资源打标签:
kubectl --context prod-a -n demo-bookinfo label deploy,svc,cm,pvc --all app=bookinfo
准备目标集群
目标集群需要:
- 存在匹配的 StorageClass,或已准备 StorageClass 映射。
- 存在必要的 CRD、镜像拉取 Secret、IngressClass。
- 能访问同一个对象存储仓库。
- 如果要做容灾切换,目标集群网络和镜像仓库已准备好。
完成这些准备后,可以进入备份恢复快速体验或容灾快速体验。