AKS 備份和復原
備份和復原是任何組織作業和災害復原策略中不可或缺的一部分。 備份和復原方案通常依賴一組不同的技術和做法,這些技術和做法是以定期將數據和應用程式複本複製到個別的次要裝置或服務為基礎。 如果發生系統失敗、數據遺失或災害,這些複本會用來復原數據和應用程式,以及其相依的業務作業。
Azure Kubernetes Service (AKS) 第 2 天作業指南的這一節說明 AKS 的備份和復原做法。
為何備份 AKS 叢集很重要
隨著雲端原生部署和 Kubernetes 在採用中持續成長,組織將 Kubernetes 叢集和工作負載納入完整的備份和復原策略中變得越來越重要。
在 AKS 中實作備份和復原可讓您:
- 從 AKS 叢集建立組態和數據次要複本,以在無法復原的系統失敗、數據遺失或災害時使用。
- 將 Kubernetes 資源和應用程式資料從某個 AKS 叢集複製到另一個叢集。
- 復寫 AKS 叢集以建立其他環境。
- 在維護作業之前擷取工作負載快照集,例如 AKS 版本升級。
- 遵守數據保護需求,以維護法規或組織合規性。
- 如果偵測到最近部署或變更的問題,請快速回復至先前的部署。
雖然備份可協助您在發生問題時還原工作負載,但不會提供高可用性 (HA)。
在 AKS 中涉及區域內部高可用性和跨區域災害復原時,您可以考慮數個其他選項,例如:
- 可用性區域:AKS 支援使用可用性區域,這是在 Azure 區域內實際分隔的數據中心。 藉由跨多個可用性區域部署 AKS 叢集,您可以確保區域內的復原能力和容錯能力更高。 如此一來,即使有一個區域發生中斷,您的應用程式仍可繼續運作。
- 永續性磁碟區的備援選項:AKS 為永續性磁碟區提供各種備援選項。 適用於 Kubernetes 的 Azure 磁碟 CSI 驅動程式支援內建記憶體類別,以及使用本地備援記憶體 (LRS) 或區域備援記憶體 (ZRS) 的自定義記憶體類別,以提升區域內的復原能力。 如需詳細資訊,請參閱 驅動程序參數。
- Azure Kubernetes Fleet Manager:Azure Kubernetes Fleet Manager 可為 AKS 叢集啟用多叢集和大規模區域內和跨區域案例。
- Azure Container Registry(ACR)的異地備援選項:Azure Container Registry (ACR) 提供異地復寫功能。 透過異地備援,您的容器映射會復寫到不同的 Azure 區域。 因此,即使特定區域發生中斷,您的映像仍可供使用,為您的容器登錄提供更高的可用性。
您也可以使用基礎結構即程序代碼 (IaC)、Azure Pipelines、GitOps 和 Flux 等方法,在發生災害時快速重新部署工作負載。
若要深入了解這些方法,您可以檢閱下列文章:
- 使用 Azure Pipelines 建置並部署至 Azure Kubernetes Service
- 教學課程:使用 GitOps 搭配 Flux v2 部署應用程式
- 了解 ARM 範本的結構和語法 \(部分機器翻譯\)
- 什麼是 Bicep?
- Azure 上的 Terraform 概觀 - 什麼是 Terraform?
需備份的項目
一般而言,考慮 AKS 和 Kubernetes 叢集的備份和復原時,請務必確切識別備份中應包含哪些元件,以確保還原成功。 主要包括下列重要元件:
叢集狀態: 是指叢集中所有 Kubernetes 物件的目前和所需設定或狀態。 它包含各種物件,例如部署、Pod、服務等等。 叢集狀態會儲存在高可用性 etcd 索引鍵/值組資料庫中,通常只能從 API 伺服器存取,就像 AKS 這類受控叢集的情況一樣。 叢集狀態是以宣告式方式定義,而且是套用至叢集的所有 Kubernetes 組態檔的結果,例如 YAML 指令清單。
應用程式數據: 是指叢集中執行的容器化工作負載所建立、管理或存取的數據。 若要確保Pod或容器之間的數據持續性重新啟動,Kubernetes 建議將應用程式資料儲存在永續性磁碟區中。 這些磁碟區可以靜態或動態建立,並可受到各種類型的永續性記憶體的支援,為數據儲存和管理需求提供彈性和延展性。
雖然叢集的完整備份需要將叢集狀態和應用程式數據同時納入為單一單位,但判斷每個備份的最佳範圍取決於各種因素。 例如,替代來源的存在,例如持續整合和持續傳遞 (CI/CD) 管線,可能會讓您更容易復原叢集狀態。 此外,應用程式數據的大小在記憶體成本和備份和復原作業所需的時間中扮演了角色。
理想的備份和復原策略高度取決於特定的應用程式和環境。 因此,備份的範圍應該逐一評估。 它也應該考慮叢集狀態的重要性和應用程式數據量等因素。
以其他元件為目標,例如個別叢集節點(VM)或本機文件系統和磁碟區,通常包含在伺服器型系統的傳統備份和復原計劃中,與 Kubernetes 無關。 相關狀態和數據不會以與傳統系統相同的方式,保存在個別節點或本機文件系統上。
AKS 的備份和復原選項簡介
傳統整合型應用程式和在 Kubernetes 叢集中執行的工作負載之間有顯著差異,這為備份和復原帶來了數個挑戰。 Kubernetes 工作負載是刻意設計成高度動態和分散式,且數據會保存在多個基礎資源和服務所支援的外部永續性磁碟區。
若要有效地支援 Kubernetes 環境,備份和復原解決方案必須具備 Kubernetes 和應用程式感知能力。 它們應該提供一定程度的自動化、可靠性和整合,這通常無法在舊版或更傳統的備份和復原工具中找到。
有各種 Kubernetes 原生備份和復原解決方案可供使用,選項範圍從開放到封閉式來源,並提供不同的授權模型。
以下是您可以搭配 AKS 使用的一些備份和復原解決方案範例。 其中一個值得注意的範例是,Microsoft名為 Azure Kubernetes Service (AKS) 備份的完全受控第一方解決方案,其提供專為 AKS 叢集及其工作負載的備份和復原而設計的 Azure 整合式服務。 這份清單並不詳盡,只提供一些可用的選項。
AKS 備份
AKS 備份 是 Azure 的備份和還原 AKS 叢集的供應專案。 這是一個簡單的 Azure 原生程式,可讓您備份和還原在 AKS 叢集中執行的容器化應用程式和數據。
AKS 備份允許依需求或排程備份完整或精細的叢集狀態,以及儲存在 Azure 磁碟式永續性磁碟區中的應用程式數據。 它與 Azure 備份 中心整合,在 Azure 入口網站 中提供單一區域,可協助您大規模控管、監視、操作及分析備份。
如需 AKS 備份的運作方式及其功能的詳細描述,請參閱關於使用 Azure 備份 的 AKS 備份。
Kasten
Kasten 是一種商業產品,可為營運小組提供易於使用且安全的系統,以備份和復原 Kubernetes 應用程式。 這兩個免費版本都有有限的功能和不支援,以及包含更多功能和客戶支持的付費版本。
當 Kasten 部署為叢集中的 Kubernetes 操作員時,它會提供完整的備份解決方案。 它提供集中式控制和可見度的管理儀錶板。 透過 Kasten,使用者可以受益於增量和應用程式感知備份,進而提供有效率的數據保護。 此外,Kasten 提供災害復原功能。 這些功能包括自動故障轉移和容錯回復,以及數據遷移和確保安全性的功能。
如需 Kasten 功能集的進一步詳細數據,請參閱 Kasten K10 檔。 若要瞭解如何有效地搭配 AKS 叢集使用 Kasten,請參閱 在 Azure 上安裝 K10。
維列羅
Velero 是 Kubernetes 廣泛使用的開放原始碼備份和復原工具。 它提供免費且不受限制的版本可供所有使用者使用,並提供項目參與者社群所提供的支持和維護。
Velero 會在叢集中以部署的形式執行,並提供應用程式備份、復原和數據遷移的完整功能集。 雖然儀錶板無法使用現成可用的儀錶板,但可以透過外部整合來新增。
如需其功能集的詳細資訊,以及瞭解如何將其與AKS叢集整合,請參閱 Velero 檔。
安裝和設定 AKS 備份
若要安裝和設定 AKS 備份,請遵循下列步驟:
- 如需搭配 AKS 備份搭配 AKS 叢集使用 AKS 備份的必要條件詳細描述,請參閱使用 AKS 備份的必要條件 Azure 備份。
- 如需 AKS 備份區域可用性、支援的案例和限制的詳細描述,請檢閱 AKS 備份支援矩陣。
- 如需如何在訂用帳戶上註冊必要資源提供者及管理這些註冊的指引,請參閱使用 Azure 備份 管理 AKS 備份。
- 如需如何使用 AKS 備份來設定 AKS 叢集備份和復原的詳細指示,請參閱使用 Azure 備份 備份 AKS。 指示包括建立和設定所有必要的 Azure 資源,例如備份保存庫、備份原則和備份實例。
- 如需如何從現有備份實例執行 AKS 叢集完整或專案層級還原的詳細指示,請參閱使用 Azure 備份 還原 AKS。
AKS 中的備份頻率和保留期:定義備份原則
判斷備份頻率和保留期限是備份和復原解決方案的基本層面。 這些參數會定義備份的執行頻率,以及備份在刪除之前保留的時間長度。 AKS 叢集及其工作負載的備份頻率和保留期間,應符合恢復點目標 (RPO) 和復原時間目標 (RTO) 的預先定義目標。
在 Kubernetes 案例中,RPO 代表可容許的最大叢集狀態或數據遺失量。 RTO 會指定叢集狀態或數據遺失與繼續叢集作業之間的允許時間上限。
選擇的備份頻率和保留期間是理想的 RPO/RTO 目標、記憶體成本和備份管理額外負荷之間的取捨。 這表示所有 AKS 叢集和工作負載都沒有任何一套大小合的組態,而且每個叢集或工作負載的最佳設定應該改為逐一定義,以符合商務需求,並遵循仔細的規劃和考慮。 定義 AKS 叢集備份頻率和保留期間時要考慮的相關因素包括:
- 關鍵性:在商務持續性方面,與叢集及其工作負載應用程序數據相關聯的關鍵性層級。
- 存取模式和變更率:在指定時間內新增、修改、刪除的叢集狀態和數據量。
- 數據量:影響記憶體成本的數據量,以及完成備份和復原作業所需的時間。
- 合規性:根據內部合規性規則和產業法規,數據保留和數據主權的需求。
在 AKS 備份服務中,備份頻率和保留期間會儲存為 備份原則 資源,這同時適用於叢集狀態和永續性磁碟區的應用程式數據。
AKS 備份中的備份原則支援每日和每小時備份,保留期間最多 360 天,同時可以定義多個原則並套用至相同的叢集。
如需如何在 AKS 備份中設定備份原則的詳細資訊,請參閱 建立備份 原則。
其他備份考慮
若要確保您的備份和復原解決方案符合貴組織的需求和原則,請考慮下列幾點:
- 恢復點目標 (RPO) 和復原時間目標 (RTO):判斷您是否有備份和復原作業需要符合的特定 RPO 和 RTO 目標。
- 永續性磁碟區 (PVs):確認您是否使用永續性磁碟區,並確定 AKS 備份解決方案支援您的 PV 類型。 如需相容性詳細數據, 請參閱 AKS 備份支援矩陣 。
- 備份範圍:定義需要備份的專案,例如特定命名空間、資源類型,或叢集中的特定數據。 如需詳細資訊,請參閱 設定備份作業。
- 備份頻率和保留:決定您需要執行備份的頻率,以及保留備份的持續時間。 您可以使用備份原則來設定此設定。 如需詳細資訊,請參閱 定義備份原則。
- 叢集選擇:決定您是否需要根據需求備份所有叢集或僅備份特定的生產叢集。
- 測試還原程式:執行定期測試還原,以驗證備份策略的可靠性與可用性。 此步驟對於確保備份和復原解決方案的有效性至關重要。 如需詳細資訊,請參閱 還原 AKS 叢集。
- 支援的案例:確認 AKS 備份解決方案支援您的特定案例。 如需相容性資訊, 請參閱 AKS 備份支援矩陣 。
- 預算配置:請考慮您是否有備份和還原作業的特定預算配置。 檢閱 AKS 備份解決方案所提供的定價 資訊,以符合您的預算需求。
藉由考慮這些其他考慮,您可以確保 AKS 的備份和復原解決方案符合貴組織的需求和喜好設定,且有效率且有效率。
AKS 備份位置和記憶體
AKS 備份會使用備份保存庫和記憶體帳戶來儲存在備份期間從叢集擷取的不同數據類型。
針對以磁碟為基礎的永續性磁碟區,AKS 備份會使用基礎 Azure 磁碟的增量快照集,這些快照集會儲存在您的 Azure 訂用帳戶內。
備份保存庫是 Azure 內的安全記憶體實體,可用來儲存 Azure 備份 所支援工作負載的備份數據,例如 AKS 叢集。 備份保存庫本身包含備份原則,以及備份作業所建立的備份和恢復點。
Azure 會自動管理備份保存庫的記憶體。 您可以從數個備援選項中選擇儲存在其中的數據,其可在備份保存庫建立時進行設定。
記憶體帳戶是 Azure 內數據對象的儲存區域,而且可高度設定。 它提供多個區域內和跨區域備援選項,以確保數據持久性。 AKS 備份會使用指定記憶體帳戶內的 Blob 容器來備份 AKS 叢集的某些元件。
增量快照 集是受控磁碟的時間點備份,其建立時只會包含自上次快照集之後的變更。 第一個增量快照集是磁碟的完整複本。 後續的增量快照集只會擷取自上次快照集之後對磁碟的差異變更。
使用 AKS 備份在 AKS 叢集之間移轉工作負載
您可以使用 AKS 備份作為特定叢集備份和復原的機制。 AKS 備份也支援移轉案例,方法是讓您從一個叢集進行備份,並將其還原到另一個叢集,例如:
- 將開發叢集還原至預備叢集
- 跨多個叢集復寫內容
若要確保您的案例受到支援,請參閱下列檔:
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Adam Sharif |Technical Advisor
- Joao Tavares |高級呈報工程師
其他投稿人:
- Paolo Salvatori | FastTrack for Azure 首席客戶工程師
- 索尼婭·庫夫 |首席雲端大使潛在客戶
下一步
深入瞭解 AKS 備份
- AKS 備份概觀
- AKS 備份支援矩陣
- AKS 備份必要條件
- 設定 AKS 備份
- 建立備份保存庫
- 建立備份原則
- 設定備份
- 還原 AKS 叢集
- AKS 的商務持續性和災害復原最佳做法
- 可靠性模式 - 雲端設計模式