本页面介绍了如何在 Cloud Storage 中为 Cassandra 安排备份。 通过此方法,备份会存储在指定的 Cloud Storage 存储桶中。
如需计划 Cassandra 备份,请执行以下步骤:
- 运行以下
create-service-account
命令以创建具有标准roles/storage.objectAdmin
角色的 Google Cloud 服务账号 (SA)。此 SA 角色允许您将备份数据写入 Cloud Storage。在$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
目录中执行该命令。./tools/create-service-account --env non-prod --dir ./
此命令会创建一个名为
apigee-non-prod
的服务账号,以用于非生产环境,并将下载的密钥文件放在./
目录中。如需详细了解 Google Cloud 服务账号,请参阅创建和管理服务账号。
create-service-account
命令会保存包含服务账号私钥的 JSON 文件。该文件会保存在执行命令的目录中。执行以下步骤将需要此文件的路径。- 创建 Cloud Storage 存储桶。 为存储桶指定合理的数据保留政策。Apigee 建议采用 15 天的数据保留政策。
- 打开您的
overrides.yaml
文件。 - 添加以下
cassandra.backup
属性以启用备份。请勿移除任何已配置的属性。参数
cassandra: ... backup: enabled: true serviceAccountPath: SA_JSON_FILE_PATH dbStorageBucket: CLOUD_STORAGE_BUCKET_PATH schedule: BACKUP_SCHEDULE_CODE cloudProvider: "GCP" # For remote server backup set this to HYBRID (all caps) ...
示例
... cassandra: storage: type: gcepd capacity: 50Gi gcepd: replicationType: regional-pd auth: default: password: "abc123" admin: password: "abc234" ddl: password: "abc345" dml: password: "abc456" nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-data backup: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my-cassandra-backup-sa.json" dbStorageBucket: "gs://myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
其中:
- 将配置更改应用到新集群。例如:
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
其中,OVERRIDES_FILE 是您刚刚修改的替换文件的路径。
- 验证备份作业。例如:
kubectl get cronjob -n apigee
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE apigee-cassandra-backup 33 * * * * False 0 <none> 94s
属性 | 说明 |
---|---|
backup:enabled |
备份默认处于停用状态。您必须将此属性设为 true 。 |
backup:serviceAccountPath |
SA_JSON_FILE_PATH 文件系统上指向在运行 您还可以提供相对文件路径。该路径相对于 |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_PATH Cloud Storage 存储桶路径,格式如下: |
backup:cloudProvider |
对于 Cloud Storage 备份,请将此属性设置为 对于远程服务器备份,请将此属性设置为 |
backup:schedule |
BACKUP_SCHEDULE_CODE 备份的开始时间,使用标准 crontab 语法指定。默认值: |