本頁面說明如何在 Google Distributed Cloud (GDC) 實體隔離方案中,為叢集工作負載建立備份存放區。
備份存放區代表備份的相容儲存位置。備份存放區也用於儲存備份、備份方案、還原方案和還原作業的記錄。
事前準備
如要建立備份存放區,您必須具備下列條件:- 相容端點:物件儲存庫網站的完整網域名稱。
- Bucket 名稱:bucket 的名稱,可在 GDC bucket 自訂資源的狀態中找到。
- Bucket 存取權:物件儲存庫 bucket 的設定權限。
- 服務身分:用於管理 API 互動的服務帳戶。請將這些操作說明中的變數
SA_NAME替換為您用來存取物件儲存空間的服務帳戶名稱。
要求 IAM 角色
請與 IAM 機構組織管理員聯絡,要求在專案中取得下列角色:
- 組織叢集備份管理員 (
organization-cluster-backup-admin):建立、取得、列出、監控及刪除備份資源,例如使用者叢集中的備份和還原方案。
建立存放區
使用 GDC 控制台或 API 建立存放區。
控制台
- 登入 GDC 控制台。
- 在導覽選單中,按一下「Backup for Clusters」。確認專案選取器中未選取任何專案。
- 依序點選「存放區」>「建立存放區」。
- 輸入存放區名稱。說明為選填項目。
- 在「S3 URI endpoint」(S3 URI 端點) 欄位中,輸入包含物件儲存庫網站完整網域名稱的端點。例如:
https://storagegrid.zone.DOMAIN.SUFFIX:PORT。 - 在「Bucket name」(值區名稱) 欄位中,輸入值區的完整名稱,這個名稱可從 GDC 值區自訂資源的狀態中找到。
- 在「Bucket region」(Bucket 區域) 欄位中,輸入 Bucket 的建立區域。
- 在「Access Key ID」(存取金鑰 ID) 清單中,輸入值區 Secret 的存取金鑰 ID。
- 在「Access key」(存取金鑰) 欄位中,輸入值區 Secret 的存取金鑰。
- 點選「建立」。
API
如要使用備份和還原 API,您必須設定有效的 ClusterBackupRepository 自訂資源,並提供必要的憑證。您也必須使用服務身分 (通常稱為服務帳戶),才能透過 API 建立存放區。
取得含有 S3 憑證的 Secret 名稱:
export PROJECT_NAME=PROJECT_NAME export SA_NAME=SA_NAME kubectl get secrets --namespace $PROJECT_NAME -o json | jq -r --arg USER_NAME "${SA_NAME:?}" '.items[] | select( (.metadata.annotations."object.gdc.goog/subject"==$USER_NAME)) | .metadata.name'請務必記錄指令傳回的密鑰名稱,並在建立
ClusterBackupRepository自訂資源時,將其做為SECRET_NAME值使用。更改下列內容:
PROJECT_NAME:專案名稱。SA_NAME:用於存取物件儲存庫的服務帳戶名稱。
如要取得值區詳細資料 (例如 FQDN 和端點),請從輸出內容中擷取
fullyQualifiedName和zonalEndpoints值:kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml新增
ClusterBackupRepository自訂資源,以便使用這些憑證,並將新資源套用至 Management API 伺服器。備份存放區的範圍為叢集:apiVersion: backup.gdc.goog/v1 kind: ClusterBackupRepository metadata: name: CLUSTER_BACKUP_REPOSITORY namespace: PROJECT_NAME spec: secretReference: namespace: PROJECT_NAME name: SECRET_NAME endpoint: END_POINT type: "S3" s3Options: bucket: BUCKET_FQDN region: REGION forcePathStyle: FORCE_PATH_STYLE importPolicy: IMPORT_POLICY更改下列內容:
CLUSTER_BACKUP_REPOSITORY:叢集備份存放區的名稱。PROJECT_NAME:專案名稱。SA_NAME:用於存取物件儲存庫的服務帳戶名稱。SECRET_NAME:kubectl get secrets指令傳回的 Secret 名稱。ENDPOINT:儲存系統的完整網域名稱,例如https://objectstorage.google.gdch.test。type欄位僅支援S3值。BUCKET_FQDN:bucket 的完整名稱。REGION:建立 bucket 的區域。FORCE_PATH_STYLE:使用forcePathStyle欄位,強制物件使用路徑樣式網址。這個欄位的值必須是true或false。IMPORT_POLICY:設為下列其中一項:ReadWrite:這個存放區可用於排定或建立備份、備份方案和還原作業。ReadOnly:這個存放區只能用於匯入及查看備份。您無法在這個存放區建立新的備份或資源,但還原作業可以使用及參照唯讀備份。使用備份存放區做為ReadOnly的頻率沒有限制。
備份存放區匯入政策
所有叢集都必須至少有一個 ReadWrite 存放區,才能成功使用備份和還原功能。ReadOnly 存放區為選用項目,沒有數量限制,可用於查看其他叢集備份,以便執行跨叢集還原。
ReadOnly 存放區無法做為額外備份的儲存位置,也無法用於匯入叢集內的備份方案。
將存放區匯入為 ReadWrite 會為該叢集宣告存放區,防止其他叢集將相同存放區匯入為 ReadWrite。匯入 ReadWrite 存放區後,該存放區中所有先前的備份、備份方案和還原記錄,都會匯入目標叢集,做為本機自訂資源。
將存放區匯入為 ReadOnly 並不會宣告存放區,只會匯入備份、備份方案、還原和還原方案。唯讀存放區中的備份方案不會排定備份,而是提供資訊,讓您瞭解匯入來源叢集中的備份方案。移除 ReadOnly 存放區會清除叢集中所有匯入的資源,且不會影響儲存位置中的資源,因為唯讀存放區不會對物件儲存空間執行寫入作業。
從叢集移除 ReadWrite 存放區時:
- 與該存放區相關聯的所有本機自訂資源 (例如備份和還原) 都會從目前叢集移除。
- 該叢集對存放區的宣告會遭到移除,其他叢集即可將該存放區做為
ReadWrite使用。不過,這些資源不會從儲存空間端點中移除。