新增備份存放區

本頁面說明如何在 Google Distributed Cloud (GDC) 實體隔離方案中,為叢集工作負載建立備份存放區。

備份存放區代表備份的相容儲存位置。備份存放區也用於儲存備份、備份方案、還原方案和還原作業的記錄。

事前準備

如要建立備份存放區,您必須具備下列條件:

  • 相容端點:物件儲存庫網站的完整網域名稱。
  • Bucket 名稱:bucket 的名稱,可在 GDC bucket 自訂資源的狀態中找到。
  • Bucket 存取權:物件儲存庫 bucket 的設定權限。
  • 服務身分:用於管理 API 互動的服務帳戶。請將這些操作說明中的變數 SA_NAME 替換為您用來存取物件儲存空間的服務帳戶名稱。

要求 IAM 角色

請與 IAM 機構組織管理員聯絡,要求在專案中取得下列角色:

  • 組織叢集備份管理員 (organization-cluster-backup-admin):建立、取得、列出、監控及刪除備份資源,例如使用者叢集中的備份和還原方案。

建立存放區

使用 GDC 控制台或 API 建立存放區。

控制台

  1. 登入 GDC 控制台。
  2. 在導覽選單中,按一下「Backup for Clusters」。確認專案選取器中未選取任何專案。
  3. 依序點選「存放區」>「建立存放區」。
  4. 輸入存放區名稱。說明為選填項目。
  5. 在「S3 URI endpoint」(S3 URI 端點) 欄位中,輸入包含物件儲存庫網站完整網域名稱的端點。例如:https://storagegrid.zone.DOMAIN.SUFFIX:PORT。
  6. 在「Bucket name」(值區名稱) 欄位中,輸入值區的完整名稱,這個名稱可從 GDC 值區自訂資源的狀態中找到。
  7. 在「Bucket region」(Bucket 區域) 欄位中,輸入 Bucket 的建立區域。
  8. 在「Access Key ID」(存取金鑰 ID) 清單中,輸入值區 Secret 的存取金鑰 ID。
  9. 在「Access key」(存取金鑰) 欄位中,輸入值區 Secret 的存取金鑰。
  10. 點選「建立」。

API

如要使用備份和還原 API,您必須設定有效的 ClusterBackupRepository 自訂資源,並提供必要的憑證。您也必須使用服務身分 (通常稱為服務帳戶),才能透過 API 建立存放區。

  1. 取得含有 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:用於存取物件儲存庫的服務帳戶名稱。
  2. 如要取得值區詳細資料 (例如 FQDN 和端點),請從輸出內容中擷取 fullyQualifiedName 和 zonalEndpoints 值:

    kubectl get buckets -n PROJECT_NAME BUCKET_NAME -o yaml
    
  3. 新增 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 使用。不過,這些資源不會從儲存空間端點中移除。

後續步驟