新增備份存放區

本頁面說明如何在 Google Distributed Cloud (GDC) 氣隙環境中,為叢集工作負載建立備份存放區。

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

事前準備

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

  • 相容的端點:物件儲存空間網站的完整網域名稱。
  • Bucket 名稱:bucket 的名稱,位於 GDC 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) 清單中,輸入值區私密金鑰中的存取金鑰 ID。
  9. 在「Access key」(存取金鑰) 欄位中,輸入值區密鑰中的存取金鑰。
  10. 點選「建立」

API

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

  1. 取得包含 S3 憑證的密鑰名稱:

    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'
    

    請務必記錄指令傳回的 Secret 名稱,並在建立 ClusterBackupRepository 自訂資源時,將該名稱做為 SECRET_NAME 值。

    更改下列內容:

    • PROJECT_NAME:專案名稱。
    • SA_NAME:用於存取物件儲存空間的服務帳戶名稱。
  2. 如要取得 FQDN 和端點等 bucket 詳細資料,請從輸出內容中擷取 fullyQualifiedNamezonalEndpoints 值:

    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 指令傳回的密鑰名稱。
    • ENDPOINT:儲存系統的完整網域名稱,例如 https://objectstorage.google.gdch.testtype 欄位僅支援 S3 值。
    • BUCKET_FQDN:bucket 的完整名稱。
    • REGION:建立 bucket 的區域。
    • FORCE_PATH_STYLE:使用 forcePathStyle 欄位,強制為物件使用路徑樣式的網址。這個欄位的值必須為 truefalse
    • IMPORT_POLICY:設為下列其中一項:
      • ReadWrite:這個存放區可用於排定或建立備份、備份方案和還原作業。
      • ReadOnly:這個存放區只能用於匯入及查看備份資料。您無法在這個存放區中建立新的備份或資源,但還原作業可以參考唯讀備份。備份存放區的使用次數沒有限制。ReadOnly

備份存放區匯入政策

所有叢集都必須至少有一個 ReadWrite 存放區,才能順利使用備份和還原功能。ReadOnly 存放區為選用項目,沒有限制,可用於瞭解其他叢集備份,以便跨叢集還原。

ReadOnly 存放區無法做為額外備份的儲存位置,也無法做為匯入叢集內的備份方案。

將存放區匯入為 ReadWrite 時,該存放區會歸該叢集所有,其他叢集就無法將相同存放區匯入為 ReadWrite。匯入 ReadWrite 存放區後,該存放區中所有先前的備份、備份方案和還原記錄,都會匯入目標叢集做為本機自訂資源。

ReadOnly 形式匯入存放區不會聲明存放區擁有權,只會匯入備份、備份方案、還原作業和還原方案。唯讀存放區中的備份方案不會排定備份作業,而是提供您匯入叢集中現有備份方案的相關資訊。移除ReadOnly存放區會清除叢集匯入的所有資源,且不會影響儲存空間位置中的資源,因為唯讀存放區的物件儲存空間不會發生寫入作業。

從叢集中移除 ReadWrite 存放區時:

  • 與該存放區相關聯的所有本機自訂資源 (例如備份和還原) 都會從目前的叢集中移除。
  • 該叢集對存放區的擁有權會遭到移除,因此存放區可做為其他叢集的 ReadWrite。但這些資源不會從儲存端點中移除。

後續步驟