在单个区域中恢复

本页面介绍如何在单个区域中恢复 Cassandra。

在单区域部署中,Apigee Hybrid 部署在单个数据中心或区域中。如果您的部署中有多个 Apigee 组织,则恢复过程会恢复所有组织的数据。在多组织设置中,您无法恢复特定的组织。

从备份恢复区域

  1. 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)。
  2. 如果您一开始没有干净集群,请按照对 helm 停用 Hybrid 区域文档进行操作,以将现有 Hybrid 安装置于干净状态(您可以让 Cert Manager 保持安装状态)。这会使您所处的状态如同您在第 11 步开始之前一直按照 Helm 运行时设置手册进行操作一样。

  3. 确认 Apigee 命名空间中没有剩余的 Pod:

    kubectl get pods -n APIGEE_NAMESPACE
  4. 如果您使用的是 CSI 备份,请通过运行以下命令来确保您可以查看要用于恢复过程的卷快照:

    kubectl get volumesnapshot -n APIGEE_NAMESPACE
              
  5. 按照第 10 步:使用 Helm 安装 Apigee Hybrid 中的说明逐个安装所有 Hybrid 组件。请注意,apigee-cassandra-restore Pod 将在您运行命令安装 datastore 后创建,但只有在安装 apigee-org 组件后,它才会进入 running 状态。

如需详细了解 Cassandra 备份和恢复,请参阅 Cassandra 备份概览

验证恢复作业进度,并确认 apigeeds 和其他所有 Pod 都已启动:

  1. 检查 apigeeds
    kubectl get apigeeds -n APIGEE_NAMESPACE
  2. 检查所有其他 Pod:
    kubectl get pods -n APIGEE_NAMESPACE

成功完成恢复并确认运行时组件健康后,我们建议在集群上配置备份:

  1. overrides-restore.yaml 文件中移除 restore 配置。
  2. backup 配置添加到 overrides-restore.yaml 文件中。
  3. 使用以下命令应用 backup 配置:
    helm upgrade datastore apigee-datastore/ \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides-restore.yaml