共用方式為


在災害發生后還原 Kubernetes 叢集的狀態

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

在 Azure 本機或 Windows Server 上的 AKS 中,管理叢集會部署為每個部署的單一獨立虛擬機(VM),使其成為單一失敗點。 請務必注意,管理叢集中斷不會影響在工作負載叢集中執行的應用程式。 當管理叢集 VM 失敗時,工作負載叢集(和工作負載)會繼續執行,但您無法執行第 2 天作業。 例如,您無法建立新的工作負載叢集、建立或調整節點集區,或升級 Kubernetes 版本,直到 VM 還原為止。

管理叢集是 Windows 故障轉移叢集中追蹤的 VM。 它也能夠復原主機層級中斷。 換句話說,在主計算機失敗期間,Windows 故障轉移叢集會在狀況良好的主計算機上重新啟動 VM。 本文提供如何執行下列工作的指引:

  • 在新硬體上還原 AKS 的狀態(可能是新月臺)。
  • 從管理叢集損毀復原。

在這些案例中,您必須重新建立管理叢集和所有工作負載叢集。

在新的硬體或新站臺上還原 AKS 的狀態

復原 Kubernetes 叢集的狀態,需要您在新的硬體或新位置有可用的管理叢集。

  • AKS 支援使用 Velero 將 Kubernetes 叢集備份至 Azure Blob 儲存體 和 MinIO。 Microsoft建議備份 Azure 儲存體,因為它會在主要記憶體區域中提供 3 個備援數據複本。
  • 請考慮在cron作業上執行備份,以確保可用的備份符合恢復點目標。

必要條件

藉由建立管理叢集和空的工作負載叢集,事先準備災害的冷待命。 您需要針對您想要從備份還原的每個 Kubernetes 叢集,需要一個空的工作負載叢集。 需要下列先決條件:

從管理叢集損毀復原

從管理叢集損毀復原需要卸載 AKS 並重新安裝管理叢集和所有工作負載叢集。 工作負載叢集可以從 Velero 備份還原到空的工作負載叢集。

需要下列先決條件:

  • 工作負載叢集備份: 使用 Velero 備份、還原工作負載叢集。
  • 針對先前的網路、記憶體和叢集設定備份 AKS 組態。 叢集設定包括控制平面、負載平衡器和背景工作節點 VM 的大小和計數。 例如,如果您的舊叢集有 3 Standard_A2_V2控制平面 VM,您必須在新的環境中建立 3 個控制平面 VM。

若要從管理叢集損毀復原,請執行下列步驟:

常見問題集

管理叢集中內建了哪些復原功能?

每個 AKS 部署都包含單一獨立 VM 的管理叢集。 針對復原能力和高可用性,AKS 依賴 Windows 故障轉移叢集,在發生中斷時復原 VM。

管理叢集中斷不會影響在工作負載叢集中執行的應用程式。 當管理叢集 VM 關閉時,這會影響您執行 AKS 第 2 天作業的能力,例如建立新的工作負載叢集、建立或調整節點集區、升級 Kubernetes 版本等,直到復原 VM 為止。 如果您無法從管理叢集失敗中復原,建議您連絡 Microsoft 支援服務。

Velero 備份中包含哪些內容?

檔案名稱 內容描述
*-csi-volumesnapshotclasses.json.gz 包含 csi 的檔案是持續性磁碟區快照集。
*-csi-volumesnapshotcontents.json.gz 包含 csi 的檔案是永續性磁碟區快照集。
*-csi-volumesnapshots.json.gz 包含 csi 的檔案是持續性磁碟區快照集。
*-logs.gz 備份作業的記錄輸出。 執行中的相同數據: velero backup log <backupname>
*-podvolumebackups.json.gz Pod 和永續性磁碟區的相關元數據。
*-resource-list.json.gz 備份中包含的資源會列在此檔案中。
*-volumesnapshots.json.gz Pod 和永續性磁碟區的相關元數據。
*.tar.gz 元數據:命名空間、Pod 複本數目、記憶體、cpu。 與從 傳回的數據相同: kubectl get deployment

Velero 備份中未包含哪些專案?

Velero 備份不包含下列專案:

  • 管理叢集 (AKS) 組態
  • 控制平面 VM (API 伺服器) 元數據
  • 負載平衡器 (HA Proxy) 元數據
  • 網路設定
  • 儲存體設定

如何? 災害發生前備份 AKS 設定?

若要備份管理叢集組態,請開啟 PowerShell 視窗並執行下列命令:

Get-AksHciConfig | ConvertTo-Json 

如何? 確定工作負載叢集的組態與災害發生前相同?

若要備份工作負載叢集組態,請開啟 PowerShell 視窗並執行下列命令:

Get-AksHciCluster -name <cluster name> | ConvertTo-Json 

下一步