共用方式為


使用 Azure 備份來備份 Azure Kubernetes Service

本文說明如何使用 Azure 入口網站 來設定及備份 Azure Kubernetes Service (AKS)。 您也可以使用 Azure PowerShell 備份 AKS

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

必要條件

設定 AKS 叢集備份之前,請務必確定事項:

  • AKS 備份目前僅支援由 CSI 驅動程式啟用的 Azure 磁碟記憶體型永續性磁碟區。 備份只會儲存在操作資料存放區中 (備份資料會儲存在您的租用戶中,且不會移至保存庫)。 備份保存庫和 AKS 叢集必須位於相同的區域中。
  • AKS 備份會使用 Blob 容器和資源群組來儲存備份。 Blob 容器會保存 AKS 叢集資源。 永續性磁碟區快照集會儲存在資源群組中。 AKS 叢集和儲存位置必須位於相同的區域中。 了解如何建立 Blob 容器
  • AKS 備份目前支援一天一次的備份。 它也支援每天更頻繁的備份 (以 4 小時、8 小時和 12 小時間隔為單位)。 此解決方案可讓您保留資料以供還原,最多可達 360 天。 了解如何建立備份原則
  • 您必須 安裝備份延伸模組 ,以設定 AKS 叢集的備份和還原作業。 深入了解備份延伸模組
  • 在起始備份組態和還原作業之前,請確定您有 Microsoft.KubernetesConfigurationMicrosoft.DataProtectionMicrosoft.ContainerService 已註冊您的訂用帳戶。
  • 在起始 AKS 備份的備份或還原作業之前,請務必先完成 所有必要條件

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

建立備份保存庫

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

注意

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

如果您想要使用 Azure 備份 來保護 AKS 叢集免於任何區域性中斷,您可以啟用跨區域還原。 若要啟用跨區域還原,您需要:

  1. 在保存庫建立期間,將備份記憶體備援參數設定為異地備援。 設定保存庫的備援之後,即無法將其停用。

    顯示如何啟用備份儲存體備援參數的螢幕擷取畫面。

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

    顯示如何啟用跨區域還原參數的螢幕擷取畫面。

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

建立備份原則

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

若要建立備份原則:

  1. 移至您建立的備份保存庫,然後選取 [管理>備份原則>新增]。

  2. 輸入備份原則的名稱。

  3. 針對 [數據源類型],選取 [Kubernetes Services]。

  4. 在 [ 排程 + 保留] 索引標籤上 ,定義備份排程

    • 備份頻率:選取 [備份頻率] (每小時或每天),然後選擇備份的 [保留期間]
    • 保留設定:新的備份原則 預設會定義默認 規則。 您可以編輯此規則,且無法將其刪除。 默認規則會定義所建立之所有作業層備份的保留持續時間。 您也可以建立額外的保留規則,以儲存每日或每週所建立較長持續時間的備份。

    顯示保留設定的螢幕快照。

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

    注意

    • 除了當天的第一次成功備份之外,您還可以定義第一次週、月和年成功備份的保留規則。 就優先順序而言,順序是年、月、週和日。
    • 您可以在儲存在保存庫層次要區域 (Azure 配對區域) 中複製備份,以在主要區域無法使用時,用來將 AKS 叢集還原到次要區域。 若要選擇此功能,請使用已啟用 [跨區域還原] 的 [異地備援保存庫]
  5. 設定備份頻率和保留設定時,請選取 [下一步]

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

安裝備份延伸模組並設定備份

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

注意

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

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

安裝備份擴充功能

若要設定 AKS 叢集的備份:

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

  2. 從服務功能表中的 [設定] 底下,選取 [備份]。

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

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

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

    顯示如何新增備份儲存體和 Blob 詳細資料的螢幕擷取畫面。

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

    延伸模組安裝隨即開始。

設定備份

  1. 成功安裝備份擴充功能時,請選取 [ 設定備份]。

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

  3. 在 [ 備份原則] 索引卷標上,選取備份原則,以定義備份的排程及其保留期間,然後選取 [ 下一步]。

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

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

    深入了解備份設定

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

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

    顯示未指派必要權限時驗證錯誤的螢幕擷取畫面。

    若要解決錯誤,請在 [數據源名稱] 底下,選取數據源的複選框,然後選取 [指派遺漏的角色]。

  7. 角色指派完成時,選取 [下一步>設定備份]。

備份設定

適用於 AKS 的 Azure 備份可讓您在想要備份的 AKS 叢集內定義應用程式界限。 您可以使用備份設定可用的篩選,選擇要備份以及要執行自訂勾點的資源。 定義的備份設定是由 [備份執行個體名稱] 的值所參考。 下列篩選可用來定義您的應用程式界限:

  1. 選取 [ 選取要備份的命名空間]。 您可以選取 [全部 ] 來備份叢集中所有現有和未來的命名空間,也可以選取特定的命名空間進行備份。

    從備份組態略過下列命名空間: kube-systemkube-node-leasekube-public

    顯示如何選取要包含在備份中的命名空間的螢幕擷取畫面。

  2. 展開 [其他資源設定],查看可用來選擇要備份之叢集資源的篩選條件。 您可以根據下列類別選擇備份資源:

    • 標籤:您可以使用指派給資源類型的標籤篩選 AKS 資源。 以索引鍵/值組的形式輸入標籤。 您可以使用邏輯來結合多個標籤 AND 。 例如,如果您輸入標籤 env=prod;tier!=web,則此流程選取之資源具備有 env 索引鍵和 prod 值的標籤,並且具備有值並非 webtier 索引鍵的標籤。
    • API 群組:提供 AKS API 群組和種類也可包含資源。 例如,您可以為備份 AKS 資源,例如部署,進行選擇。 您可以在這裡存取 Kubernetes 已定義 API 群組的清單。
    • 其他選項:您可以啟用或停用叢集範圍資源、永續性磁碟區和秘密的備份。 依預設會啟用叢集範圍資源和永續性磁碟區。

注意

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

在 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 叢集的備份。

    注意

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

下一步