本頁面說明如何為 Google Distributed Cloud (GDC) Air-gapped 中的叢集工作負載建立及管理備份計畫。
備份方案提供一系列備份的設定、位置和管理功能。備份方案包含備份設定,包括來源叢集和要備份的工作負載。Google 建議為每個叢集提供至少一項備份方案。
您可以為每個叢集建立一或多個備份方案。您可能基於下列原因,需要分割叢集的備份:
- 您希望在一天內進行多次較小的備份,而不是在一天中的某個時間點進行一次非常大的備份。
- 您希望更頻繁地備份叢集的某些部分,例如某些命名空間每天備份一次,其他命名空間則每小時備份一次。
單一叢集或虛擬機器 (VM) 可屬於一或多個備份方案。備份方案無法跨越多個叢集,但如果多個 VM 位於同一叢集,則可由單一備份方案擷取。您必須將所有備份和還原資源與專案名稱建立關聯。
事前準備
如要建立備份方案,您必須具備下列條件:
- 必要的身分與存取權角色:
- 使用者叢集備份管理員:管理使用者叢集中的備份資源,例如備份和還原方案。請要求機構 IAM 管理員授予您「使用者叢集備份管理員」角色 (
user-cluster-backup-admin)。詳情請參閱「角色定義」。
- 使用者叢集備份管理員:管理使用者叢集中的備份資源,例如備份和還原方案。請要求機構 IAM 管理員授予您「使用者叢集備份管理員」角色 (
- 如果您是應用程式運算子,請要求具備使用者叢集備份管理員權限的管理員為您建立備份方案。
- 備份使用者叢集時,請務必將用於建立備份方案的專案附加至該叢集。
建立備份方案
建議您為備份方案定義 Cron 排程,讓系統依據該排程自動建立備份。您也可以手動備份工作負載。詳情請參閱「建立手動備份」。
使用 GDC 控制台或 API 建立備份方案。
控制台
- 登入 GDC 控制台。
- 在導覽選單中,按一下「Backup for Clusters」(叢集備份)。
- 按一下「建立備份計畫」。
- 在「方案詳細資料」部分,完成下列步驟並按一下「繼續」:
- 在「叢集」清單中,選取要備份的叢集。
- 在「專案」清單中選取專案。
- 在「備份方案名稱」欄位中,輸入所選備份方案名稱。
- (選用) 在「備份方案說明」中輸入備份方案的說明。
- 在「備份存放區」欄位中,選取備份存放區。備份儲存空間是物件儲存空間實作項目。
- 點選「下一步」。
在「範圍和加密」部分,完成下列步驟並按一下「繼續」:
為備份方案選取下列其中一個範圍:
- 按一下「整個叢集」,備份中的所有命名空間資源。
- 按一下「叢集內所選的命名空間」,選擇要備份的叢集命名空間。
- 依序按一下「Edit Cluster Namespace」(編輯叢集命名空間) 和「Add Cluster Namespace」(新增叢集命名空間),然後輸入「Namespace」(命名空間)。
- 按一下「在這個叢集中選定的受保護應用程式」,然後指定命名空間和應用程式名稱,即可新增資源。
- 依序點按「編輯受保護的應用程式」和「新增受保護的應用程式」,然後輸入「命名空間」和「受保護的應用程式」。
按一下「Include Secrets」(包含密鑰),即可納入 Kubernetes
Secret資源。如要在備份中加入磁碟區資料,請按一下「包含永久磁碟區的資料」。如要在備份期間建立空白磁碟區,請取消勾選這個核取方塊。
在「排程和保留」部分,完成下列步驟,然後按一下「繼續」:
- 如要定義排程,請在「CRON 字串」欄位中,使用標準 cron 語法輸入運算式。舉例來說,運算式
10 3 * * *會在每天 0310 建立備份。所有時間都會解讀為 UTC。排定備份作業的時間間隔下限為 10 分鐘。 - 在「在以下天數後刪除備份」欄位中,設定備份資料的保留天數。達到天數上限後,備份檔就會自動刪除。
- 設定備份無法刪除的天數。
- 如要鎖定保留政策,請按一下鎖頭圖示,將鎖頭從「關閉」切換為「開啟」。
- 如要定義排程,請在「CRON 字串」欄位中,使用標準 cron 語法輸入運算式。舉例來說,運算式
查看備份方案詳細資料,然後按一下「建立方案」。
API
在叢集中建立 ClusterBackupPlan 自訂資源,即可安排備份時間。備份方案會根據 backupSchedule 定期安排備份作業。ClusterBackupPlan 資源是命名空間資源。以下是 ClusterBackupPlan 的範例:
apiVersion: backup.gdc.goog/v1
kind: ClusterBackupPlan
metadata:
name: CLUSTER_BACKUP_PLAN
namespace: PROJECT_NAME
spec:
targetCluster:
targetClusterType: UserCluster
targetClusterName:
kind: "Cluster"
name: CLUSTER_NAME
backupSchedule:
cronSchedule: CRON_SCHEDULE
paused: BACKUP_SCHEDULE_STATUS
clusterBackupConfig:
backupScope:
selectedNamespaces:
namespaces: [NAME_SPACE]
clusterBackupRepositoryName: CLUSTER_BACKUP_REPOSITORY
includeVolumeData: VOLUME_DATA_INCLUDED
volumeStrategy: VOLUME_STRATEGY
includeSecrets: SECRETS_INCLUDED
retentionPolicy:
backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
backupRetainDays: BACKUP_RETAIN_DAYS
description: BACKUP_PLAN_DESCRIPTION
更改下列內容:
CLUSTER_BACKUP_PLAN:叢集備份計畫名稱。PROJECT_NAME:GDC 專案的名稱。CLUSTER_NAME:要備份的叢集名稱。封閉的targetCluster欄位包含下列元件:targetClusterType:要備份的叢集類型,例如UserCluster或ManagementAPI。本範例使用UserCluster。targetClusterName:包含name,由CLUSTER_NAME設定。
CRON_SCHEDULE:指出何時排定備份作業的 crontab 時間表,例如"*/30 * * * *"。排定備份作業的時間間隔下限為 10 分鐘。BACKUP_SCHEDULE_STATUS:如果true,系統不會排定定期備份。NAME_SPACE:要納入備份的命名空間清單。封閉的clusterBackupConfig欄位包含備份的設定詳細資料:backupScope:指出備份的資源。本範例使用selectedNamespaces。可能的值包括:allNamespaces:擷取所有命名空間中的所有資源。selectedNamespaces:擷取指定命名空間清單中的資源。selectedApplication:擷取protectedApplications定義的資源。
namespaces:如果backupScope為selectedNamespaces,則適用。
CLUSTER_BACKUP_REPOSITORY:clusterBackupConfig中clusterBackupRepositoryName的值。這是儲存備份的目標存放區,必須匯入為ReadWrite。VOLUME_DATA_INCLUDED:指定是否備份磁碟區資料。根據預設,此值為false。如要在備份中加入磁碟區資料,請將此值設為true。VOLUME_STRATEGY:要執行的磁碟區備份類型。可用的值包括:ProvisionerSpecific:利用基礎儲存空間佈建工具的備份和還原功能。如果includeVolumeData為true,請使用這個選項。LocalSnapshotOnly:只在本地儲存系統本身建立磁碟區的時間點副本。Portable:提供與儲存空間無關的磁碟區資料備份方式。
SECRETS_INCLUDED:指定是否備份密鑰。根據預設,此值為false。如要在備份中納入 KubernetesSecret資源,請將此值設為true。BACKUP_DELETE_LOCK_DAYS:在備份建立後,防止刪除備份的天數,例如10 days。BACKUP_RETAIN_DAYS:定義備份的保留天數總計。之後就會自動刪除。如果將這個值設為較大的數字,可能會導致儲存空間耗盡;如果設為較小的數字,則可能增加資料遺失的風險。如未指定,預設值為 35。資料保留政策不會覆寫儲存位置的資料保留政策,且不得超過 90 天。BACKUP_PLAN_DESCRIPTION:備份方案說明。
建立備份方案後,系統會根據備份排程,自動建立備份並套用指定的備份設定。
查看備份方案
使用 GDC 控制台或 API 查看備份方案。
控制台
- 登入 GDC 控制台。
- 在導覽選單中,按一下「Backup for Clusters」(叢集備份)。
- 按一下「選取專案」,然後視您的角色選取機構或專案:
- 使用者叢集備份管理員:選取機構可查看機構中的所有備份方案,選取專案則可查看專案中的所有備份方案。
- 備份建立者:選取專案即可查看專案中的所有備份方案。
- 按一下「備份方案」分頁標籤。
- 按一下清單中的備份方案,即可查看詳細資料。具備使用者叢集備份管理員權限的使用者,可以查看機構中的所有備份方案。具備備份建立者角色的使用者,可以查看所選專案中的所有備份方案。
API
如要查看備份方案,請使用 kubectl get 指令:
kubectl get clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -o yaml
更改下列內容:
CLUSTER_BACKUP_PLAN:要查看的備份方案名稱。PROJECT_NAME:GDC 專案的名稱。
編輯備份方案
使用 GDC 控制台或 API 編輯備份方案。
控制台
- 登入 GDC 控制台。
- 在導覽選單中,按一下「Backup for Clusters」(叢集備份)。
- 按一下「選取專案」,然後視您的角色選取機構或專案:
- 使用者叢集備份管理員:選取機構可查看機構中的所有備份方案,選取專案則可查看專案中的所有備份方案。
- 備份建立者:選取專案即可查看專案中的所有備份方案。
- 按一下「備份方案」分頁標籤。
- 按一下要編輯的備份方案名稱。
- 按一下「方案設定」分頁標籤,即可查看可修改的欄位。
按一下「時間表和保留期限」的「編輯」圖示 edit,即可編輯該資源:
- 如要更新排程,請在「CRON 字串」欄位中,使用標準 Cron 語法輸入運算式。舉例來說,運算式
10 3 * * *會在每天 0310 建立備份。所有時間都會解讀為 UTC。排定備份作業的時間間隔下限為 10 分鐘。 - 在「在以下天數後刪除備份」欄位中,設定備份資料的保留天數。達到天數上限後,備份檔就會自動刪除。
在「防止刪除備份的天數」欄位中,設定備份無法刪除的天數。
如要鎖定保留政策,請按一下鎖頭圖示,將狀態從「關閉」切換為「開啟」。
按一下「儲存」按鈕,確認變更。
- 如要更新排程,請在「CRON 字串」欄位中,使用標準 Cron 語法輸入運算式。舉例來說,運算式
API
如要編輯備份方案,請使用 kubectl edit 指令修改 ClusterBackupPlan 自訂資源。這個指令會在預設文字編輯器中開啟資源的 YAML 設定。
kubectl edit clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME
更改下列內容:
CLUSTER_BACKUP_PLAN:要編輯的備份方案名稱。PROJECT_NAME:GDC 專案的名稱。
在編輯器中,您可以修改下列欄位:
spec.backupSchedule.cronSchedule:更新備份頻率。spec.backupSchedule.paused:啟用或停用備份排程。spec.retentionPolicy.backupRetainDays:變更備份保留時間。spec.retentionPolicy.backupDeleteLockDays:變更刪除鎖定時間。spec.retentionPolicy.locked:鎖定資料保留政策。spec.deactivated:停用備份方案。將這個欄位設為「true」可防止建立備份及後續更新。
停用備份方案
使用 GDC 控制台或 API 停用備份計畫:
控制台
- 登入 GDC 控制台。
- 在導覽選單中,按一下「Backup for Clusters」(叢集備份)。
- 按一下「選取專案」,然後視您的角色選取機構或專案:
- 使用者叢集備份管理員:選取機構可查看機構中的所有備份方案,選取專案則可查看專案中的所有備份方案。
- 備份建立者:選取專案即可查看專案中的所有備份方案。
- 按一下「備份方案」分頁標籤。
- 按一下要停用的備份方案名稱。
- 按一下「停用方案」按鈕。
- 在欄位中輸入要停用的備份方案名稱。
按一下「停用」按鈕,即可完成停用這項備份方案的程序。
API
如要停用備份方案,請將 deactivated 欄位設為 true:
kubectl patch clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -p '{"spec":{"deactivated":true}}' --type=merge
更改下列內容:
CLUSTER_BACKUP_PLAN:要停用的備份方案名稱。PROJECT_NAME:GDC 專案的名稱。