共用方式為


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,但您的自訂 儲存體 Class 可以使用 進階版 SSD、標準 SSD 或標準 HDD。

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

建立和使用記憶體類別來定義應用程式需求

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

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

調整節點的大小以符合記憶體需求

最佳做法指導方針

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

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

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

儲存體 效能也會因本機和連結磁碟 IOPS 上限的 VM 大小而有所不同(每秒的輸入/輸出作業)。

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

例如,雖然 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 Services (AKS) 叢集中永續性磁碟區宣告的圖表。

永續性磁碟區宣告 (PVC) 可讓您視需要動態建立記憶體。 基礎 Azure 磁碟會建立為 Pod 要求它們。 在 Pod 定義中,要求建立磁碟區並附加至指定的掛接路徑。

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

若要查看這些磁碟區的運作情形,請參閱如何使用 Azure 磁碟或 Azure 檔案儲存體 動態建立和使用永續性磁碟區。

在記憶體類別定義中,設定適當的 回收原則。 此回收原則會控制刪除Pod時基礎 Azure 記憶體資源的行為。 基礎記憶體資源可以刪除或保留以供未來的 Pod 使用。 設定 reclaimPolicy 以保留或刪除

瞭解您的應用程式需求,並實作保留記憶體的定期檢查,以將未使用和計費的記憶體數量降到最低。

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

保護及備份您的數據

最佳做法指導方針

使用適用於記憶體類型的適當工具備份數據,例如 Velero 或 Azure 備份。 驗證那些備份的完整性及安全性。

當您的應用程式儲存及使用保存在磁碟上或檔案中的資料時,您必須對該資料進行定期備份或擷取快照集。 Azure 磁碟可以使用內建的快照集技術。 執行快照集作業之前,您的應用程式可能需要排清寫入到磁碟。 Velero 可以備份永續性磁碟區,以及額外的叢集資源和組態。 如果您無法 從應用程式移除狀態,請從永續性磁碟區備份數據,並定期測試還原作業,以確認數據完整性和所需的程式。

了解數據備份的不同方法的限制,如果您需要在快照集之前停止您的數據。 數據備份不一定可讓您還原叢集部署的應用程式環境。 如需這些案例的詳細資訊,請參閱 AKS 中商務持續性和災害復原的最佳做法。

下一步

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