本页面介绍如何在单个区域中恢复 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 ...
其中:
属性 说明 namespaceYOUR_RESTORE_NAMESPACE
用于恢复的命名空间。使用原始集群中的同一命名空间。
cassandra:hostNetworkhostNetwork是必需的,应始终设置为false。restore:enabled恢复功能默认处于停用状态。您必须将此属性设为 true。restore:serviceAccountPathSA_JSON_FILE_PATH
文件系统上指向为备份创建的服务账号的路径。
restore:dbStorageBucketCLOUD_STORAGE_BUCKET_NAME
存储要用于数据恢复的备份归档的 Google Cloud Storage 存储桶的名称。
restore:cloudProviderGCPcloudProvider: "GCP"属性是必需的属性。restore:snapshotTimestampTIMESTAMP
要恢复的备份快照的时间戳。如需查看可以使用哪些时间戳,请转到
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-restorePod 将在您运行命令安装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