共用方式為


使用 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. 在保存庫建立期間,將備份儲存體備援參數設定為全域備援。 設定保存庫的備援之後,您就無法停用。

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

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

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

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

    注意

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

建立備份原則

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

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

若要建立備份原則:

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

    顯示如何開始建立備份原則的螢幕擷取畫面。

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

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

    顯示選取 datasource 類型的螢幕擷取畫面。

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

    顯示提供備份原則名稱的螢幕擷取畫面。

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

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

    顯示備份頻率選取項目的螢幕擷取畫面。

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

    顯示保留期間選取項目的螢幕擷取畫面。

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

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

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

      顯示保存庫層級和作業層級保留設定的螢幕擷取畫面。

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

    注意

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

    顯示備份原則建立完成的螢幕擷取畫面。

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

設定備份

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

注意

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

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

若要設定 AKS 叢集的備份:

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

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

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

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

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

    選取 [下一步]。

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

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

    延伸模組安裝隨即開始。

    顯示如何檢閱及安裝備份延伸模組的螢幕擷取畫面。

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

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

    顯示設定備份選取項目的螢幕擷取畫面。

  7. 選取備份保存庫。

    顯示如何選擇保存庫的螢幕擷取畫面。

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

    顯示如何在授與權限之後繼續進行下一個步驟的螢幕擷取畫面。

    注意

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

    顯示如何選擇備份原則的螢幕擷取畫面。

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

    顯示如何定義備份執行個體設定的螢幕擷取畫面。

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

    深入了解備份設定

    顯示如何定義備份叢集資源的螢幕擷取畫面。

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

    顯示如何驗證快照集資源群組的螢幕擷取畫面。

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

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

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

    顯示如何開始指派角色的螢幕擷取畫面。

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

    顯示如何選取遺漏角色的螢幕擷取畫面。

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

    顯示如何繼續進行備份設定的螢幕擷取畫面。

  15. 選取 [設定備份]

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

    顯示如何完成備份設定的螢幕擷取畫面。

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

    顯示已建立備份執行個體清單的螢幕擷取畫面。

    顯示備份執行個體詳細資料的螢幕擷取畫面。

備份設定

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

  1. 選取要備份的命名空間,您可以選取 [全部] 來備份叢集內所有的現有和未來命名空間,或者您可以選取 [從清單選擇] 選取特定的備份命名空間。

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

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

    • 標籤:您可以使用指派給資源類型的標籤篩選 AKS 資源。 以索引鍵/值組的形式輸入標籤。 使用 AND 邏輯合併多個標籤。

    例如,如果您輸入標籤 env=prod;tier!=web,則此流程選取之資源具備有 env 索引鍵和 prod 值的標籤,並且具備有值並非 webtier 索引鍵的標籤。

    • API 群組:提供 AKS API 群組和種類也可包含資源。 例如,您可以為備份 AKS 資源,例如部署,進行選擇。 您可以在這裡存取 Kubernetes 已定義 API 群組的清單。

    • 其他選項:您可以啟用或停用叢集範圍資源、永續性磁碟區和秘密的備份。 根據預設,系統會啟用叢集範圍資源和永續性磁碟區

    顯示 [其他資源設定] 窗格的螢幕擷取畫面。

    注意

    這些資源設定全部都會透過 AND 邏輯合併及套用。

注意

您應該將標籤新增至已部署和備份的每個 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 叢集的備份

    注意

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

    顯示如何新增備份設定命名空間的螢幕擷取畫面。

下一步