本页面介绍了如何在 Cloud Storage 中为 Cassandra 安排备份。 通过此方法,备份会存储在指定的 Cloud Storage 存储桶中。
如需计划 Cassandra 备份,请执行以下步骤:
- 运行以下
create-service-account
命令以创建具有标准roles/storage.objectAdmin
角色的 Google Cloud 服务账号 (SA)。此 SA 角色允许您将备份数据写入 Cloud Storage。E 在您的管理工具对应的目录中执行以下命令:- Helm 图表:
$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/
apigeectl
:HYBRID_BASE_DIRECTORY/hybrid-files/
此命令会创建一个名为./tools/create-service-account --env non-prod --dir ./service-accounts
apigee-non-prod
的服务账号,以用于非生产环境,并将下载的密钥文件放在./service-accounts
目录中。 如需详细了解 Google Cloud 服务账号,请参阅创建和管理服务账号。 - Helm 图表:
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: "my-cassandra-backup-sa.json" dbStorageBucket: "gs://myname-cassandra-backup" schedule: "45 23 * * 6" cloudProvider: "GCP" ...
其中:
- 将配置更改应用到新集群。例如:
Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --datastore
其中,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 文件系统上指向在运行 对于使用 Helm 管理的安装,路径必须相对于 apigee-datastore 图表目录。例如, 对于使用 |
backup:dbStorageBucket |
CLOUD_STORAGE_BUCKET_PATH Cloud Storage 存储桶路径,格式如下: |
backup:cloudProvider |
对于 Cloud Storage 备份,请将此属性设置为 对于远程服务器备份,请将此属性设置为 |
backup:schedule |
BACKUP_SCHEDULE_CODE 备份的开始时间,使用标准 crontab 语法指定。默认值: |
启动手动备份
Cassandra 备份会根据 overrides.yaml
文件中设置的 Cron 时间表自动生成。
如需启动手动备份,请使用以下命令:
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup BACKUP_POD_NAME