執行跨專案備份


本頁說明如何使用 Backup for GKE 服務,在 Google Kubernetes Engine (GKE) 中執行跨專案備份。

總覽

有了跨專案備份功能,您就能將備份專案生命週期與叢集專案區隔開來。您可以在叢集專案以外的專案中,取得存取權受到控管的備份。

限制

您無法遷移現有的備份方案,執行跨專案備份。

定價

如需定價詳細資料,請參閱跨專案備份與還原的定價

事前準備

  1. 開始之前,請確認你已完成下列工作:

    • 啟用 Google Kubernetes Engine API。
    • 啟用 Google Kubernetes Engine API
    • 如要使用 Google Cloud CLI 執行這項工作,請安裝初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行 gcloud components update,取得最新版本。
  2. 在要備份叢集的專案,以及要儲存備份的專案中,啟用 Backup for GKE API。詳情請參閱「啟用 Backup for GKE API」。

  3. 在要備份的叢集中啟用 Backup for GKE 外掛程式。 詳情請參閱「為叢集啟用 GKE 備份」一文。

必要的角色

如要取得建立及管理跨專案備份所需的權限,請要求管理員授予您專案的 Backup for GKE 備份管理員 (roles/gkebackup.backupAdmin) 身分與存取權管理角色。這個角色是 Backup for GKE 管理員 (roles/gkebackup.admin) 的子集。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

設定服務帳戶

視需要建立專案專屬的服務帳戶,以便對專案執行作業。

使用 Google Cloud CLI 執行下列指令,設定服務帳戶:

  1. 執行 gcloud beta services identity create 指令,建立服務帳戶:

      gcloud beta services identity create \
        --service=gkebackup.googleapis.com \
        --project=CLUSTER_PROJECT_ID
      gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \
        --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \
        --role=roles/gkebackup.serviceAgent \
    
      gcloud beta services identity create \
        --service=gkebackup.googleapis.com \
        --project=BACKUP_PROJECT_ID
      gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID \
        --member=serviceAccount:service-BACKUP_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \
        --role=roles/gkebackup.serviceAgent
    

    更改下列內容:

    • CLUSTER_PROJECT_ID:要建立的 Google Cloud 專案名稱,由英數字元組成。例如:cluster-project-id

    • CLUSTER_PROJECT_NUMBER:專案的專屬數字 ID。 Google Cloud 例如:123456789012

    • BACKUP_PROJECT_ID:備份檔儲存位置的專案英數字元名稱。Google Cloud 例如:backup-project-id

    • BACKUP_PROJECT_NUMBER:備份檔儲存所在專案的專屬數字 ID。例如:123456789012

  2. 執行 gcloud projects add-iam-policy-binding 指令,允許備份專案的服務帳戶在叢集專案中執行備份:

      gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \
       --member=serviceAccount:service-BACKUP_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \
       --role=roles/gkebackup.serviceAgent
    

    更改下列內容:

    • CLUSTER_PROJECT_ID:專案的英數字元名稱。Google Cloud 例如:cluster-project-id

    • BACKUP_PROJECT_NUMBER:備份檔儲存所在專案的專屬數字 ID。例如:123456789012

  3. 執行 gcloud projects add-iam-policy-binding 指令,允許叢集專案的代理程式存取備份專案中的 gkebackup.googleapis.com

      gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID \
       --member serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com \
       --role "roles/gkebackup.crossProjectServiceAgent"
    

    更改下列內容:

    • BACKUP_PROJECT_ID:備份檔儲存位置的專案英數字元名稱。Google Cloud 例如:backup-project-id

    • CLUSTER_PROJECT_NUMBER:專案的專屬數字 ID。 Google Cloud 例如:123456789012

建立備份管道

設定服務帳戶後,您必須在與要備份的叢集相同的專案和區域中建立備份管道。建立備份管道後,您就能將專案和區域中的叢集備份至目的地專案。

gcloud

如要建立備份管道,請使用 Google Cloud CLI 執行 gcloud beta container backup-restore backup-channels create 指令:

gcloud beta container backup-restore backup-channels create BACKUP_CHANNEL_NAME \
 --project=CLUSTER_PROJECT_ID \
 --location=CLUSTER_LOCATION \
 --destination-project=projects/BACKUP_PROJECT_NUMBER

更改下列內容:

  • BACKUP_CHANNEL_NAME:要建立的備份管道名稱。例如:my-backup-channel-name

  • CLUSTER_PROJECT_ID:叢集所在Google Cloud 專案的英數字元名稱。例如:cluster-project-id

  • CLUSTER_LOCATION:叢集所在的區域。例如:us-central1

  • BACKUP_PROJECT_NUMBER:備份檔儲存所在專案的專屬數值 ID。

控制台

如要在 Google Cloud 控制台中建立備份管道,請按照下列操作說明進行:

  1. 在 Google Cloud 控制台中,前往「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在「資源管理」選單中,按一下「Backup for GKE」

  3. 按一下「備用管道」分頁標籤。

  4. 在「備份管道」分頁中,按一下「建立備份管道」

  5. 使用「叢集專案」欄位,確認已選取正確的叢集專案。

  6. 使用「Region」(區域) 選單,選取叢集所在的區域。

  7. 使用「備份專案」欄位,選取要允許備份的專案。

  8. 在「備份管道名稱」欄位中,輸入備份管道的名稱。

  9. 選用:在「備份管道的說明」欄位中,輸入備份管道的簡短說明。

  10. 點選「下一步」

  11. 驗證叢集和備份專案的服務帳戶權限。

  12. 點選「建立」

建立備份方案

建立備份管道後,您必須建立備份方案。如果備份的叢集位於其他專案,備份方案會自動繫結至現有的備份管道。備份方案中的 backup_channel 欄位會顯示備份方案繫結的備份管道。

事前準備

建立備份方案前,請參閱「規劃一組備份」。

建立備份方案

如要在備份專案中透過 Google Cloud 控制台建立備份方案,請按照下列操作說明進行:

  1. 在 Google Cloud 控制台中,前往「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在「資源管理」選單中,按一下「Backup for GKE」

  3. 開啟要建立備份方案的備份專案。

  4. 按一下「建立備份方案」

  5. 選取「設定跨專案備份」核取方塊。

  6. 在「叢集專案」欄位中,選擇包含來源叢集的專案。

  7. 從「叢集」選單中,選取叢集所在的區域。

  8. 在「備份方案名稱」欄位中,輸入備份方案的名稱。

  9. 在「Backup project」(備份專案) 欄位中,輸入要儲存備份的備份專案名稱。

  10. 在「Region」(地區) 欄位中,輸入備份資料的儲存位置。如果找不到備份管道,請按一下「建立備份管道」,按照提示建立備份管道,然後按一下「建立」

  11. 按一下「查看備份管道詳細資料」

  12. 按一下「驗證權限」

  13. 按照「建立備份計畫」一文的說明,完成剩餘步驟。

  14. 按一下「建立方案」

查看備份管道

請按照下列各節的說明查看備用頻道。

查看專案和區域中的所有備份管道

gcloud

如要查看專案和區域中的所有備份管道,請使用 Google Cloud CLI 執行 gcloud beta container backup-restore backup-channels list 指令:

  gcloud beta container backup-restore backup-channels list \
    --project=CLUSTER_PROJECT_ID \
    --location=CLUSTER_LOCATION

更改下列內容:

  • CLUSTER_PROJECT_ID:叢集所在Google Cloud 專案的英數字元名稱。例如:cluster-project-id

  • CLUSTER_LOCATION:叢集所在的區域。例如:us-central1

控制台

如要在Google Cloud 控制台中查看專案和區域內的所有備份管道,請按照下列操作說明進行:

  1. 在叢集專案的 Google Cloud 控制台中,前往「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在「資源管理」選單中,按一下「Backup for GKE」

  3. 按一下「備用管道」分頁標籤。

  4. 使用專案和區域選單,篩選備份管道清單。

篩選後的清單會顯示所選專案和區域中的所有備份管道。

查看備份管道的詳細資料

gcloud

如要查看備份管道的詳細資料,請使用 Google Cloud CLI 執行 gcloud beta container backup-restore backup-channels describe 指令:

  gcloud beta container backup-restore backup-channels describe BACKUP_CHANNEL_NAME \
  --project=CLUSTER_PROJECT_ID \
  --location=CLUSTER_LOCATION

更改下列內容:

  • BACKUP_CHANNEL_NAME:要查看的備份管道名稱。例如:my-backup-channel-name

  • CLUSTER_PROJECT_ID:叢集所在Google Cloud 專案的英數字元名稱。例如:cluster-project-id

  • CLUSTER_LOCATION:叢集所在的區域。例如:us-central1

控制台

如要在 Google Cloud 控制台中查看備份管道的詳細資料,請按照下列指示操作:

  1. 在叢集專案的 Google Cloud 控制台中,前往「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在「資源管理」選單中,按一下「Backup for GKE」

  3. 按一下「備用管道」分頁標籤。

  4. 使用專案和區域選單,篩選備份管道清單。

  5. 按一下要查看的備份頻道名稱。系統會開啟頁面,顯示該備份管道的詳細資料。

查看繫結至備份管道的備份方案

如要查看繫結至備份管道的備份方案,請使用 Google Cloud CLI 執行 gcloud beta container backup-restore backup-plan-bindings list 指令:

   gcloud beta container backup-restore backup-plan-bindings list \
    --backup-channel=BACKUP_CHANNEL_NAME \
    --project=CLUSTER_PROJECT_ID \
    --location=CLUSTER_LOCATION

更改下列內容:

  • BACKUP_CHANNEL_NAME:要查看的備份管道名稱。例如:my-backup-channel-name

  • CLUSTER_PROJECT_ID:叢集所在 Google Cloud 專案的英數字元名稱。例如:cluster-project-id

  • CLUSTER_LOCATION:叢集所在的區域。例如:us-central1

管理備份管道

下列各節說明如何管理備份管道。

更新備份管道

請按照下列操作說明更新備份管道。請注意,你只能修改現有備份管道的說明。其他欄位則無法修改。

gcloud

如要更新備份管道的說明,請使用 Google Cloud CLI 執行 gcloud beta container backup-restore backup-channels update 指令:

gcloud beta container backup-restore backup-channels update BACKUP_CHANNEL_NAME \
  --project=CLUSTER_PROJECT_ID \
  --location=CLUSTER_LOCATION \
  --description=DESCRIPTION

更改下列內容:

  • BACKUP_CHANNEL_NAME:要更新的備份管道名稱。例如:my-backup-channel-name

  • CLUSTER_PROJECT_ID:叢集所在Google Cloud 專案的英數字元名稱。例如:cluster-project-id

  • CLUSTER_LOCATION:叢集所在的區域。例如:us-central1

  • DESCRIPTION:要更新的說明。

控制台

如要在 Google Cloud 控制台中更新備份管道,請按照下列說明操作:

  1. 在叢集專案的 Google Cloud 控制台中,前往「Google Kubernetes Engine」 頁面。

    前往「Google Kubernetes Engine」

  2. 在「資源管理」選單中,按一下「Backup for GKE」

  3. 按一下「備用管道」分頁標籤。

  4. 在「備份管道」頁面中,按一下要更新的備份管道。請注意,您只能更新現有備份管道的說明。其他欄位則無法修改。

    「備份管道詳細資料」頁面隨即顯示。

  5. 按一下「驗證權限」

  6. 在「備份管道詳細資料」部分中,按一下「編輯說明」圖示

    系統會顯示「編輯說明」對話方塊。

  7. 在「說明」欄位中輸入更新後的說明,然後按一下「儲存變更」

刪除備份管道

只有在備份管道不含任何有效備份方案時,才能刪除該管道。如果有效備份方案繫結至備份管道,您必須先停用或刪除備份方案,才能刪除備份管道。

gcloud

如要刪除備份通道,請使用 Google Cloud CLI 執行 gcloud beta container backup-restore backup-channels delete 指令:

  gcloud beta container backup-restore backup-channels delete BACKUP_CHANNEL_NAME \
    --project=CLUSTER_PROJECT_ID \
    --location=CLUSTER_LOCATION

更改下列內容:

  • BACKUP_CHANNEL_NAME:要刪除的備份管道名稱。例如:my-backup-channel-name

  • CLUSTER_PROJECT_ID:叢集所在Google Cloud 專案的英數字元名稱。例如:cluster-project-id

  • CLUSTER_LOCATION:叢集所在的區域。例如:us-central1

控制台

如要使用 Google Cloud 控制台刪除備份管道,請按照下列操作說明進行:

  1. 在叢集專案的 Google Cloud 控制台中,前往「Google Kubernetes Engine」頁面。

    前往「Google Kubernetes Engine」

  2. 在「資源管理」選單中,按一下「Backup for GKE」

  3. 按一下「備用管道」分頁標籤。

  4. 在「備份管道」頁面中,按一下要刪除的備份管道。

  5. 按一下「刪除頻道」

    系統會顯示對話方塊,詢問您是否要刪除備用管道。

  6. 在「備份頻道名稱」欄位中輸入備份頻道名稱,確認要刪除。

  7. 按一下「確認」。

後續步驟