本頁面說明如何在 Google Distributed Cloud (GDC) 氣隙環境中,為叢集工作負載建立備份存放區。
備份存放區代表備份作業的相容儲存位置。備份存放區也用於儲存備份、備份方案、還原方案和還原的記錄。
事前準備
如要建立備份存放區,必須符合下列條件:- 相容的端點:物件儲存空間網站的完整網域名稱。
- Bucket 名稱:bucket 的名稱,位於 GDC 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) 清單中,輸入值區私密金鑰中的存取金鑰 ID。
- 在「Access key」(存取金鑰) 欄位中,輸入值區密鑰中的存取金鑰。
- 點選「建立」。
API
如要使用備份及還原 API,必須設定有效的ClusterBackupRepository自訂資源,並提供必要憑證。
您也必須使用服務身分 (通常稱為服務帳戶),才能透過 API 建立存放區。
取得包含 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:用於存取物件儲存空間的服務帳戶名稱。
如要取得 FQDN 和端點等 bucket 詳細資料,請從輸出內容中擷取
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指令傳回的密鑰名稱。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。但這些資源不會從儲存端點中移除。