本頁面說明如何在 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" # required verbatim "GCP" (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_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --datastore
其中 OVERRIDES_FILE 是指您剛剛編輯的覆寫檔案路徑。
- 驗證備份工作。例如:
kubectl get cronjob -n APIGEE_NAMESPACE
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 語法指定。預設值: |
啟動手動備份
系統會根據 overrides.yaml
檔案中的 cassandra.backup.schedule 設定,自動觸發備份工作。不過,您也可以視需要使用下列指令手動啟動備份工作:
kubectl create job -n APIGEE_NAMESPACE --from=cronjob/apigee-cassandra-backup MANUAL_BACKUP_JOB_NAME
其中 MANUAL_BACKUP_JOB_NAME 是您要建立的手動備份工作名稱。