共用方式為


在 Azure Kubernetes Service (AKS) 中進行儲存和備份的最佳做法

隨著您在 Azure Kubernetes Service (AKS) 中建立及管理叢集,您的應用程式通常會需要儲存體。 請確定您了解 Pod 效能需求和存取方法,如此即可選取最適合您應用程式的儲存體。 AKS 節點大小可能會影響您的儲存體選擇。 規劃適用於所連結儲存體的備份方式並測試還原程序。

這個最佳做法文章著重在適用於叢集操作員的儲存體考量。 在本文章中,您將了解:

  • 有哪些可用的儲存體類型。
  • 如何針對儲存體效能正確評估 AKS 節點大小。
  • 動態和靜態佈建磁碟區之間的差異。
  • 備份並保護資料磁碟區的方式。

選擇適當的儲存體類型

最佳做法指導方針

了解應用程式的需求以挑選正確的儲存體。 針對生產工作負載使用高效能、以 SSD 備份的儲存體。 當您需要多個並行連線時,針對網路型儲存體進行規劃。

應用程式通常會需要不同類型及速度的儲存體。 透過詢問下列問題來判斷最適合的儲存體類型。

  • 您的應用程式是否需要連線至個別 Pod 的儲存體?
  • 您的應用程式是否需要在多個 Pod 之間共用的儲存體?
  • 儲存體是否將用來以唯讀方式存取資料?
  • 儲存體是否將用來寫入大量結構化資料?

下表會概述可用的儲存體類型及其功能:

使用案例 磁碟區外掛程式 單次讀取/寫入 多次唯讀 多次讀取/寫入 Windows Server 容器支援
共用設定 Azure 檔案 Yes .是 .是 Yes
結構化應用程式資料 Azure 磁碟 Yes
非結構化資料、檔案系統作業 BlobFuse (英文) Yes .是 No

AKS 針對磁碟區提供兩個主要安全儲存體類型:由 Azure 磁碟支援,或是由 Azure 檔案儲存體支援。 這兩者均使用預設的 Azure 儲存體服務加密 (SSE) 來將待用資料加密。 磁碟無法在 AKS 節點層級,使用 Azure 磁碟加密進行加密。 使用 Azure 檔案儲存體共用時,節點上可以掛接的數量沒有任何限制。

Azure 檔案儲存體和 Azure 磁碟均於標準和進階效能層級提供:

  • 進階磁碟
    • 由高效能固態硬碟 (SSD) 支援。
    • 建議用於所有實際執行工作負載。
  • 標準磁碟
    • 由一般機械硬碟 (HDD) 支援。
    • 適用於封存或不常存取的資料。

雖然 Azure 資料箱磁碟 CSI 驅動程式的預設儲存層是進階 SSD,但您的自訂 StorageClass 可以使用進階 SSD、標準 SSD 或標準 HDD。

藉由了解應用程式效能需求和存取模式,來選擇適當的儲存層。 如需受控磁碟大小和效能層級的詳細資訊,請參閱 Azure 受控磁碟概觀

建立及使用儲存體類別來定義應用程式需求

使用 Kubernetes「儲存體類別」定義您想要的儲存體類型。 儲存體類別接著會參考於 Pod 或部署規格中。 儲存體類別定義會一起運作以建立適當的儲存體,並將其連線至 Pod。

如需詳細資訊,請參閱 AKS 中的儲存類別

針對儲存體需求評估節點大小

最佳做法指導方針

每個節點大小都支援最大的磁碟數目。 不同的節點大小也會提供不同的本機儲存體大小和網路頻寬。 適當地針對您的應用程式需求進行規劃,以部署正確的節點大小。

AKS 節點能以各種不同的 Azure VM 類型和大小執行。 每個 VM 大小都提供:

  • 不同數量的核心資源,例如 CPU 和記憶體。
  • 可連結的磁碟數目上限。

不同的 VM 大小在本機和附加磁碟 IOPS (每秒輸入/輸出作業) 上限上,也具有儲存體效能上的差異。

如果您的應用程式需要使用 Azure 磁碟作為其儲存體解決方案,請擬定適當節點 VM 大小的策略。 在決定 VM 大小時,儲存體功能及 CPU 和記憶體數量會扮演主要角色。

例如,儘管 Standard_B2msStandard_DS2_v2 VM 大小都包括類似的 CPU 和記憶體資源量,但其潛在儲存體效能卻不同:

節點類型和大小 vCPU 記憶體 (GiB) 最大資料磁碟 最大未快取磁碟 IOPS 最大未快取輸送量 (MBps)
Standard_B2ms 2 8 4 1,920 22.5
Standard_DS2_v2 2 7 8 6,400 96

在此範例中,Standard_DS2_v2 提供兩倍的連結磁碟數量,以及三到四倍的 IOPS 數量和磁碟輸送量。 如果您僅比較核心計算資源和比較成本,您可能會選擇儲存體效能和限制較為不佳的 Standard_B2ms VM 大小。

請與您的應用程式開發團隊一起合作,以了解他們的儲存體容量和效能需求。 針對 AKS 節點選擇適當的 VM 大小,以符合或超越他們的效能需求。 定期對應用程式進行基準評估,以視需求調整 VM 大小。

注意

根據預設,系統會根據選取的 VM SKU 和 vCPU 計數來指派受控磁碟的磁碟大小和效能。 只有在不支援暫時性 OS 磁碟且未指定預設 OS 磁碟大小時,才會在新叢集或節點集區上使用預設 OS 磁碟大小。 如需詳細資訊,請參閱預設 OS 磁碟大小調整

如需可用 VM 大小的詳細資訊,請參閱 Azure 中的 Linux 虛擬機器大小

動態佈建磁碟區

最佳做法指導方針

若要減少管理額外負荷並允許調整規模,請避免以靜態方式建立並指派永續性磁碟區。 請使用動態佈建。 在您的儲存體類別中定義適當的收回原則,以將刪除 Pod 後的非必要儲存體成本降到最低。

若要將儲存體連結到 Pod,請使用永續性磁碟區。 永續性磁碟區可以透過手動或動態方式建立。 手動建立永續性磁碟區會增加管理額外負荷,並限制調整規模的能力。 請改為動態佈建永續性磁碟區以簡化儲存體管理,並允許您的應用程式視需要成長並調整規模。

Azure Kubernetes Service (AKS) 叢集中持續性磁碟區宣告的圖表。

永續性磁碟區宣告 (PVC) 可讓您視需求以動態方式建立儲存體。 底層 Azure 磁碟會在 Pod 加以要求時建立。 在 Pod 定義中,要求建立磁碟區並連結至指定的掛接路徑。

如需如何動態建立及使用磁碟區的概念,請參閱永續性磁碟區宣告

若要查看這些磁碟區實際運作的方式,請參閱如何使用 Azure 資料箱磁碟Azure 檔案儲存體以動態方式建立及使用永續性磁碟區。

作為您磁碟區類別定義的一部分,請設定適當的 reclaimPolicy。 此 reclaimPolicy 可控制刪除 Pod 之後的底層 Azure 儲存體資源行為。 您可以刪除底層儲存體資源,或加以保留以供未來的 Pod 使用。 將 reclaimPolicy 設定為 retaindelete

了解您的應用程式需求,並對保留的儲存體實作定期檢查,以將未使用但需加以計費的儲存體量降到最低。

如需儲存類別選項的詳細資訊,請參閱儲存體回收原則

保護並備份您的資料

最佳做法指導方針

使用適用於您儲存體類型的工具來備份資料,例如 Velero 或 Azure 備份。 驗證那些備份的完整性及安全性。

當您的應用程式儲存及使用保存在磁碟上或檔案中的資料時,您必須對該資料進行定期備份或擷取快照集。 Azure 磁碟可以使用內建的快照集技術。 在執行快照集作業之前,您的應用程式可能需要排清寫入至磁碟。 Velero (英文) 可以連同其他叢集資源和設定一起備份永續性磁碟區。 如果您無法從應用程式移除狀態,請備份來自永續性磁碟區的資料並定期測試還原作業,以確認資料完整性及必要的處理流程。

請了解不同資料備份方法的限制,以及您是否需要在擷取快照集之前使資料靜止。 資料備份並不一定能讓您還原您的叢集部署應用程式環境。 如需相關情節的詳細資訊,請參閱 AKS 中商務持續性和災害復原的最佳做法

下一步

本文著重於 AKS 中的儲存體最佳做法。 如需 Kube 中儲存體基本概念的詳細資訊,請參閱 AKS 中適用於應用程式的儲存體概念