使用 Azure 備份來備份 Azure Kubernetes Service

本文描述如何設定和備份 Azure Kubernetes Service (AKS)。

您可以使用 Azure 備份來備份 AKS 叢集 (叢集資源和連結至叢集的永續性磁碟區),方法是使用必須安裝在叢集中的備份延伸模組。 備份保存庫會透過備份延伸模組與叢集通訊,以執行備份和還原作業。

注意

使用 Azure 備份的 AKS 保存庫備份和跨區域還原目前處於預覽狀態。

在您開始使用 Intune 之前

  • 目前,AKS 備份僅支援以 Azure 磁碟儲存體為基礎的永續性磁碟區 (由 CSI 驅動程式啟用)。 備份只會儲存在操作資料存放區中 (備份資料會儲存在您的租用戶中,且不會移至保存庫)。 備份保存庫和 AKS 叢集必須位於相同的區域中。

  • AKS 備份會使用 Blob 容器和資源群組來儲存備份。 Blob 容器會保存 AKS 叢集資源。 永續性磁碟區快照集會儲存在資源群組中。 AKS 叢集和儲存位置必須位於相同的區域中。 了解如何建立 Blob 容器

  • 目前,AKS 備份支援一天一次的備份。 它也支援每天更頻繁的備份 (以 4 小時、8 小時和 12 小時間隔為單位)。 此解決方案可讓您保留資料以供還原,最多可達 360 天。 了解如何建立備份原則

  • 您必須安裝備份延伸模組,才能設定 AKS 叢集的備份和還原作業。 深入了解備份延伸模組

  • 在起始備份設定和還原作業之前,請確定已為您的訂用帳戶註冊 Microsoft.ContainerService 上的 Microsoft.KubernetesConfigurationMicrosoft.DataProtectionTrustedAccessPreview 功能旗標。

  • 請確定您在起始 AKS 備份的備份或還原作業之前,先執行所有必要條件

如需支援的案例、限制和可用性的詳細資訊,請參閱支援矩陣

建立備份保存庫

備份保存庫是一種管理實體,可儲存一段時間內所處理的復原點。 備份保存庫也提供介面來執行備份作業。 作業包括製作隨選備份、執行還原,以及建立備份原則。 AKS 備份需要備份保存庫和 AKS 叢集位於相同的區域中。 了解如何建立備份保存庫

注意

備份保存庫是用來備份新支援資料來源的新資源。 備份保存庫不同於復原服務保存庫。

如果您要使用 Azure 備份來保護 AKS 叢集免於任何區域性中斷:

  1. 在保存庫建立期間,將備份儲存體備援參數設定為全域備援。 設定保存庫的備援之後,您就無法停用。

    Screenshot shows how to enable the Backup Storage Redundance parameter.

  2. 將 [保存庫屬性] 底下的 [跨區域還原] 參數設定為 [已啟用]。 啟用此參數之後,您就無法停用。

    Screenshot shows how to enable the Cross Region Restore parameter.

  3. 使用備份原則建立備份執行個體,並將保留期間設定為保存庫標準資料存放區。 儲存在此資料存放區中的每個復原點都會位於次要區域中。

    注意

    保存庫標準資料存放區目前為預覽狀態。

建立備份原則

設定備份之前,您必須建立備份原則,以定義備份的頻率和備份的保留期間。

您也可以在設定備份時建立備份原則。

若要建立備份原則:

  1. 移至 [備份中心],然後選取 [原則] 以建立新的備份原則。

    Screenshot that shows how to start creating a backup policy.

    或者,前往 [備份中心]>[備份原則]>[新增]

  2. 針對 [資料來源類型],選取 [Kubernetes Service],然後繼續。

    Screenshot that shows selecting the datasource type.

  3. 輸入備份原則的名稱 (例如預設原則),然後選取需要建立備份原則的備份保存庫 (您建立的新備份保存庫)。

    Screenshot that shows providing the backup policy name.

  4. 在 [排程 + 保留] 索引標籤上,定義備份的頻率,以及需要在操作和保存庫層 (也稱為資料存放區) 中保留多久時間

    備份頻率:選取 [備份頻率] (每小時或每天),然後選擇備份的 [保留期間]

    Screenshot that shows selection of backup frequency.

    保留設定:新的備份原則有兩個保留規則。

    Screenshot that shows selection of retention period.

    您也可以建立額外的保留規則,以儲存每日或每週所建立較長持續時間的備份。

    • 預設值:此規則會定義所建立所有作業層備份的預設保留持續時間。 您只能編輯此規則,且無法將其刪除。

    • 每天建立的第一次成功備份:除了預設規則之外,當天的每個第一次成功備份都可以保留在作業資料存放區和保存庫標準存放區中。 您可以編輯和刪除此規則 (如果您想要在操作資料存放區中保留備份)。

      Screenshot that shows the retention configuration for Vault Tier and Operational Tier.

    您也可以針對每週、每月和每年建立的第一次成功備份定義類似的規則。

    注意

    • 除了當天的第一次成功備份之外,您還可以定義第一次週、月和年成功備份的保留規則。 就優先順序而言,順序是年、月、週和日。
    • 保存庫標準資料存放區目前為預覽狀態。 如果您不想使用此功能,請編輯保留規則,並清除 Vault 標準資料存放區旁的核取方塊。
    • 儲存在保存庫層中的備份也可以複製到次要區域 (Azure 配對區域),您可以在主要區域無法使用時,將 AKS 叢集還原到次要區域。 若要選擇此功能,請使用已啟用 [跨區域還原] 的 [異地備援保存庫]
  5. 設定備份頻率和保留設定時,請選取 [下一步]

    Screenshot that shows the completion of a backup policy creation.

  6. 在 [檢閱 + 建立] 索引標籤上檢閱資訊,然後選取 [建立]。

設定備份

您可以使用 AKS 備份來備份整個叢集或部署在叢集中的特定叢集資源。 您也可以根據已部署應用程式的排程和保留需求或安全性需求,多次保護叢集。

注意

若要為相同的 AKS 叢集設定多個備份執行個體:

  • 在相同的備份保存庫中設定備份,但使用不同的備份原則。
  • 在不同的備份保存庫中設定備份。

若要設定 AKS 叢集的備份:

  1. 在 Azure 入口網站中,移至您想要備份的 AKS 叢集。

  2. 在資源功能表中,選取 [備份],然後選取 [設定備份]

  3. 若要準備 AKS 叢集以進行備份或還原,請選取 [安裝延伸模組] 以在叢集中安裝備份延伸模組。

  4. 提供儲存體帳戶和 Blob 容器作為輸入。

    您的 AKS 叢集備份會儲存在此 Blob 容器中。 儲存體帳戶必須與叢集位於相同的區域和訂用帳戶中。

    選取 [下一步]。

    Screenshot that shows how to add storage and blob details for backup.

  5. 檢閱延伸模組安裝詳細資料,然後選取 [建立]

    延伸模組安裝隨即開始。

    Screenshot that shows how to review and install the Backup extension.

  6. 成功安裝備份延伸模組時,請選取 [設定備份] 以開始設定 AKS 叢集的備份。

    您也可以在備份中心執行此動作。

    Screenshot that shows the selection of Configure Backup.

  7. 選取備份保存庫。

    Screenshot that shows how to choose a vault.

    備份保存庫應該已啟用信任存取,才能備份 AKS 叢集。 若要啟用 [信任存取],請選取 [授與權限]。 如果已啟用,請選取 [下一步]

    Screenshot that shows how to proceed to the next step after granting permission.

    注意

    • 啟用信任存取之前,請先為訂用帳戶上的 Microsoft.ContainerServices 資源提供者啟用 TrustedAccessPreview 功能旗標。
    • 如果 AKS 叢集未安裝備份延伸模組,您可以執行設定備份的安裝步驟。
  8. 選取備份原則,其會定義備份的排程及其保留期間。 然後選取下一步

    Screenshot that shows how to choose a backup policy.

  9. 在 [資料來源] 索引標籤上,選取 [新增/編輯] 以定義備份執行個體設定。

    Screenshot that shows how to define the Backup Instance Configuration.

  10. 在 [選取要備份的資源] 窗格中,定義您要備份的叢集資源。

    深入了解備份設定

    Screenshot that shows how to define the cluster resources for backup.

  11. 針對 [快照集資源群組],選取要用來儲存永續性磁碟區 (Azure 磁碟儲存體) 快照集的資源群組。 然後選取 [驗證]

    Screenshot that shows how to validate the snapshot resource group.

  12. 驗證完成時,如果未將必要的角色指派給快照集資源群組中的保存庫,則會出現錯誤:

    Screenshot that shows a validation error when required permissions aren't assigned.

  13. 若要解決錯誤,請在 [資料來源名稱] 底下選取資料來源,然後選取 [指派遺漏的角色]

    Screenshot that shows how to start assigning roles.

    下列螢幕擷取畫面顯示您可以選取的角色清單:

    Screenshot that shows how to select missing roles.

  14. 角色指派完成時,選取 [下一步]

    Screenshot that shows how to proceed to the backup configuration.

  15. 選取 [設定備份]

  16. 設定完成時,選取 [下一步]

    Screenshot that shows how to finish backup configuration.

    備份設定完成時會建立備份執行個體。

    Screenshot that shows the list of created backup instances.

    Screenshot that shows the backup instance details.

備份設定

作為 AKS 備份功能的一部分,您可以備份所有叢集資源或特定叢集資源。 您可以使用備份設定可用的篩選器,以選擇要備份的資源。 定義的備份設定是由 [備份執行個體名稱] 的值所參考。 您可以使用下列選項來選擇要備份的 [命名空間] 值:

  • 全部 (包括未來的命名空間):備份基礎叢集資源時,這會備份 [命名空間] 的所有目前和未來值。

  • 從清單中選擇:選取 AKS 叢集中要備份 [命名空間] 的特定值。

    若要選取要備份的特定叢集資源,您可以使用附加至資源的標籤,將資源包含在備份中。 只有具有您輸入標籤的資源才會備份。 您可以使用多個標籤。

    注意

    您應該將標籤新增至已部署和備份的每個 YAML 檔案。 這包括命名空間範圍的資源,例如永續性磁碟區宣告,以及叢集範圍的資源,例如永續性磁碟區。

    如果您也想要備份叢集範圍的資源、祕密和永續性磁碟區,請選取 [其他選項] 底下的項目。

Screenshot that shows various backup configurations.

在 AKS 備份期間使用勾點

本節說明如何使用備份勾點,建立已部署 MySQL 之 AKS 叢集的應用程式一致快照集 (包含 MySQL 執行個體的永續性磁碟區)。

您可以使用 AKS 備份中的自訂勾點來完成磁碟區的應用程式一致快照集。 磁碟區會用於部署為容器化工作負載的資料庫。

藉由使用備份勾點,您可以定義命令來凍結和取消凍結 MySQL Pod,以便建立磁碟區的應用程式快照集。 備份延伸模組接著會協調在勾點中執行命令的步驟,並建立磁碟區快照集。

執行下列動作可建立已部署 MySQL 之磁碟區的應用程式一致快照集:

  1. 執行 MySQL 的 Pod 已凍結,因此資料庫上不會執行任何新交易。
  2. 磁碟區的快照集會建立為備份。
  3. 執行 MySQL 的 Pod 不會凍結,因此可以在資料庫上再次完成交易。

若要在備份設定流程中啟用備份勾點,以備份 MySQL:

  1. 使用命令撰寫備份勾點的自訂資源,以凍結和取消凍結 PostgreSQL Pod。

    您也可以使用下列範例 YAML 指令碼 postgresbackuphook.yaml,其中包含預先定義的命令:

    apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
    kind: BackupHook
    metadata:
    # BackupHook CR Name and Namespace
    name: bkphookname0
    namespace: default
    spec:
    # BackupHook Name. This is the name of the hook that will be executed during backup.
    # compulsory
    name: hook1
    # Namespaces where this hook will be executed.
    includedNamespaces: 
    - hrweb
    excludedNamespaces:
    labelSelector:
    # PreHooks is a list of BackupResourceHooks to execute prior to backing up an item.
    preHooks:
       - exec:
          command:
          - /sbin/fsfreeze
          - --freeze
          - /var/lib/postgresql/data
          container: webcontainer
          onError: Continue
    # PostHooks is a list of BackupResourceHooks to execute after backing up an item.
    postHooks:
       - exec:
          container: webcontainer
          command:
             - /sbin/fsfreeze
             - --unfreeze
          onError: Fail
          timeout: 10s
    
    
    
  2. 設定備份之前,您必須在 AKS 叢集中部署備份勾點自訂資源。

    若要部署指令碼,請執行下列命令:

    kubectl apply -f mysqlbackuphook.yaml
    
    
  3. 部署完成時,您可以設定 AKS 叢集的備份

    注意

    在備份設定過程中,您必須提供自訂資源名稱和資源部署為輸入的命名空間。

    Screenshot that shows how to add the namespace for the backup configuration.

下一步