本页面介绍如何在单个区域中恢复 Cassandra。
在单区域部署中,Apigee Hybrid 部署在单个数据中心或区域中。如果您的部署中有多个 Apigee 组织,则恢复过程会恢复所有组织的数据。在多组织设置中,您无法恢复特定的组织。
从备份恢复区域
-
在
overrides.yaml
文件中更新 Cassandra 恢复详细信息:namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_NAME" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: false ...
其中:
属性 说明 namespace
YOUR_RESTORE_NAMESPACE
用于恢复的命名空间。使用原始集群中的同一命名空间。
cassandra:hostNetwork
hostNetwork
是必需的,应始终设置为false
。restore:enabled
恢复功能默认处于停用状态。您必须将此属性设为 true
。restore:serviceAccountPath
SA_JSON_FILE_PATH
文件系统上指向为备份创建的服务账号的路径。
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_NAME
用于存储要用于数据恢复的备份归档的 Google Cloud Storage 存储桶的名称。
restore:cloudProvider
GCP
cloudProvider: "GCP"
属性是必需的属性。restore:snapshotTimestamp
TIMESTAMP
要恢复的备份快照的时间戳。如需查看可以使用哪些时间戳,请转到
dbStorageBucket
并查看存储桶中存在的文件。每个文件名都包含时间戳值。例如:backup_20210203213003_apigee-cassandra-default-0.tgz
其中,20210203213003 是您在希望恢复该时间点创建的备份时使用的
snapshotTimestamp
值。backup:enabled
您应该将此属性设为 false
(以防它之前被设置为true
)。 -
如果您一开始没有干净集群,请按照对 helm 停用 Hybrid 区域文档进行操作,以将现有 Hybrid 安装置于干净状态(您可以让 Cert Manager 保持安装状态)。这会使您所处的状态如同您在第 11 步开始之前一直按照 Helm 运行时设置手册进行操作一样。
-
确认 Apigee 命名空间中没有剩余的 Pod:
kubectl get pods -n APIGEE_NAMESPACE
-
如果您使用的是 CSI 备份,请通过运行以下命令来确保您可以查看要用于恢复过程的卷快照:
kubectl get volumesnapshot -n APIGEE_NAMESPACE
-
按照第 10 步:使用 Helm 安装 Apigee Hybrid 中的说明逐个安装所有 Hybrid 组件。请注意,
apigee-cassandra-restore
Pod 将在您运行命令安装datastore
后创建,但只有在安装apigee-org
组件后,它才会进入running
状态。
如需详细了解 Cassandra 备份和恢复,请参阅 Cassandra 备份概览。
验证恢复作业进度,并确认 apigeeds
和其他所有 Pod 都已启动:
- 检查
apigeeds
:kubectl get apigeeds -n APIGEE_NAMESPACE
- 检查所有其他 Pod:
kubectl get pods -n APIGEE_NAMESPACE
成功完成恢复并确认运行时组件健康后,我们建议在集群上配置备份:
- 从
overrides-restore.yaml
文件中移除restore
配置。 - 将
backup
配置添加到overrides-restore.yaml
文件中。 - 使用以下命令应用
backup
配置:helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides-restore.yaml