共用方式為


Kubernetes 叢集的 儲存體 選項

本文比較 Amazon Elastic Kubernetes Service (Amazon EKS) 和 Azure Kubernetes Service (AKS) 的記憶體功能,並說明在 AKS 上儲存工作負載數據的選項。

注意

本文是一系列文章的一部分,可協助熟悉 Amazon EKS 的專業人員瞭解 AKS

Amazon EKS 記憶體選項

在 Amazon EKS 中,Kubernetes 1.11 版之後,叢集有預設 儲存體 Class,稱為gp2永續性磁碟區宣告。 管理員 istrators 可以新增驅動程式來定義更多儲存類別,例如:

  • Amazon EBS CSI 驅動程式作為 Amazon EKS 附加元件
  • Amazon EBS CSI 自我管理附加元件
  • Amazon EFS CSI 驅動程式
  • Amazon FSx for Lustre CSI 驅動程式
  • 適用於 NetApp ONTAP CSI 驅動程式的 Amazon FSx

藉由新增驅動程式和記憶體類別,您可以使用記憶體服務,例如:

  • Amazon Elastic Block Store (Amazon EBS),這是與 Amazon Elastic Compute Cloud (EC2) 實例搭配使用的區塊層級記憶體解決方案,用來儲存永續性數據。 此服務類似於 Azure 磁碟 儲存體,其具有數個 SKU,例如標準 SSD、進階版 SSD 或 Ultra 磁碟,視所需的效能而定。

  • Amazon Elastic File System (Amazon EFS),提供網路文件系統存取可跨實例共用的外部文件系統。 對等的 Azure 解決方案是搭配伺服器訊息塊 (SMB) 3.0 和 NFS 存取 Azure 檔案儲存體 和 Azure 檔案儲存體 進階版。

  • Lustre 是一種開放原始碼文件系統,通常用於高效能運算(HPC)。 在 Azure 中,您可以將 Ultra 磁碟或 Azure HPC Cache 用於速度很重要的工作負載,例如機器學習和 HPC。

  • NetApp ONTAP,Amazon Web Services (AWS) 中完全受控的 ONTAP 共用記憶體。 Azure NetApp Files 是以 NetApp 技術為基礎的類似 Azure 檔案記憶體服務。

AKS 記憶體選項

根據預設,每個 AKS 叢集都包含下列 預先建立的 記憶體類別:

  • 默認記憶體類別managed-csi會使用磁碟 儲存體 標準 SSD。 標準 SSD 是一種符合成本效益的記憶體選項,針對需要每秒較低輸入輸出作業 (IOPS) 的一致效能的工作負載優化。
  • 類別managed-csi-premium會使用磁碟 儲存體 進階版 SSD 受控磁碟。
  • 類別azurefile-csi會使用 Azure 檔案儲存體,使用SMB或NFS,為相同的記憶體磁碟區提供並行共用存取權。
  • 類別azurefile-csi-premium會針對具有 IOPS 密集工作負載的檔案共用使用 Azure 檔案儲存體 進階版。 Azure 檔案儲存體 進階版 提供 SSD 記憶體支援的低延遲和高輸送量。

您可以新增其他記憶體類別,並與其他可用的記憶體解決方案整合,例如:

  • Ultra 磁碟儲存體
  • Azure NetApp Files
  • HPC Cache
  • NFS 伺服器
  • 第三方記憶體解決方案

Azure 磁碟儲存體

根據預設,AKS 叢集隨附使用磁碟 儲存體 的預先建立managed-csimanaged-csi-premium記憶體類別。 與 Amazon EBS 類似,這些類別會建立受控磁碟或封鎖連結至節點以進行 Pod 存取的裝置。

磁碟 儲存體 儲存體類別同時允許靜態動態磁碟區布建。 回收原則可確保使用永續性磁碟區刪除磁碟。 您可以編輯永續性磁碟區宣告來展開磁碟。

這些記憶體類別會使用 Azure 受控磁碟搭配 本地備援記憶體 (LRS) 。 LRS 表示數據在 Azure 主要區域中的單一實體位置內有三個同步複本。 LRS 是成本最低的複寫選項,但無法針對數據中心失敗提供保護。 若要降低此風險,請使用可使用內建快照技術的 Velero 或 Azure 備份 之類的解決方案,定期備份或磁碟 儲存體 數據的快照集。

這兩個記憶體類別都受到受控磁碟的支援,而且都使用固態硬碟 (SSD) 磁碟驅動器。 請務必瞭解標準磁碟與 進階版 磁碟之間的差異:

  • 標準磁碟會根據大小和記憶體交易來定價。
  • 進階版 磁碟只會依大小收費,這可讓需要大量交易的工作負載更便宜。
  • 進階版 SSD 提供更高的輸送量和 IOPS,如此比較所示。
  • 建議針對大部分的生產與開發工作負載使用 進階版 記憶體。

如果您使用 Azure 受控磁碟作為主要記憶體類別,請考慮您為 Kubernetes 叢集選擇的虛擬機 (VM) SKU。 Azure VM 會限制您可以連結的磁碟數目,而限制會隨著 VM 大小而有所不同。 此外,由於 Azure 磁碟會掛接為 ReadWriteOnce,因此只能用於單一 Pod。

Ultra 磁碟儲存體

Ultra 磁碟 儲存體 是 Azure 受控磁碟層,可提供 Azure VM 的高輸送量、高 IOPS 和一致的低延遲磁碟記憶體。 Ultra 磁碟 儲存體 適用於數據和交易繁重的工作負載。 與其他磁碟 儲存體 SKU 和 Amazon EBS 一樣,Ultra 磁碟 儲存體 一次掛接一個 Pod,而且不提供並行存取。

使用旗標--enable-ultra-ssdAKS 叢集上啟用 Ultra 磁碟 儲存體。

如果您選擇 Ultra 磁碟 儲存體,請注意其限制,並確定選取相容的 VM 大小。 Ultra 磁碟 儲存體 可供本地備援記憶體 (LRS) 複寫使用。

Azure 檔案

磁碟 儲存體 無法提供磁碟區的並行存取權,但您可以使用 Azure 檔案儲存體 透過SMB通訊協定進行連線,然後掛接 Azure 儲存體支援的共用磁碟區。 此程式提供類似於 Amazon EFS 的網路連接記憶體。 如同磁碟 儲存體,有兩個選項:

  • Azure 檔案儲存體 標準記憶體是由一般硬碟 (HDD) 所支援。
  • Azure 檔案儲存體 進階版 記憶體會使用高效能 SSD 磁碟驅動器來備份檔案共用。 進階版 的檔案共用大小下限為 100 GB。

Azure 檔案儲存體 具有下列記憶體帳戶複寫選項,以在發生失敗時保護您的數據:

若要將 Azure 檔案儲存體 的成本優化,請購買 Azure 檔案儲存體 容量保留

Azure NetApp Files

如同 AWS NetApp ONTAP,Azure NetApp Files 是企業級、高效能的計量檔案記憶體服務。 Azure NetApp Files 在 Azure 中使用 NetApp 解決方案完全受控。 如同 Azure 檔案儲存體,Azure NetApp Files 可讓多個 Pod 掛接磁碟區。 您可以使用 適用於 Kubernetes 的開放原始碼動態記憶體協調器 Astra Trident,將 AKS 叢集設定為使用 Azure NetApp Files

請注意 Azure NetApp Files 的資源限制。 Azure NetApp Files 的容量集區大小下限為 4 TiB。 Azure NetApp Files 會依布建的大小而不是使用的容量收費。

Azure HPC Cache

Azure HPC Cache 會加快對 HPC 工作數據的存取速度,並具備雲端解決方案的所有延展性。 如果您選擇此記憶體解決方案,請務必將 AKS 叢集部署在 支援 Azure HPC 快取的區域。

NFS 伺服器

共用 NFS 存取的最佳選項是使用 Azure 檔案儲存體 或 Azure NetApp Files。 您也可以 在匯出磁碟區的 Azure VM 上建立 NFS 伺服器。

請注意,此選項僅支持靜態布建。 您必須在伺服器上手動布建 NFS 共用,且無法自動從 AKS 進行。

此解決方案是以基礎結構即服務(IaaS)為基礎,而不是平臺即服務(PaaS)。 您負責管理 NFS 伺服器,包括 OS 更新、高可用性、備份、災害復原和延展性。

協力廠商解決方案

如同 Amazon EKS,AKS 是 Kubernetes 實作,您可以整合第三方 Kubernetes 記憶體解決方案。 以下是 Kubernetes 的第三方記憶體解決方案範例:

  • Rook 會將分散式儲存系統自動化為自我管理記憶體服務,藉由自動化記憶體系統管理員工作。 Rook 會透過每個記憶體提供者的 Kubernetes 操作員來提供服務。
  • GlusterFS 是一種免費且開放原始碼的可擴充網路文件系統,其使用一般現成的硬體來建立大型分散式記憶體解決方案,以用於數據繁重且耗用頻寬的工作。
  • Ceph 提供可靠且可調整的統一記憶體服務,其中包含從商用硬體元件建置的單一叢集的物件、區塊和檔案介面。
  • MinIO 多重雲端物件記憶體可讓企業在任何雲端上建置 AWS S3 相容的數據基礎結構,為數據和應用程式提供一致的可攜式介面。
  • Portworx 是 Kubernetes 專案和容器型計劃端對端記憶體和數據管理解決方案。 Portworx 提供容器細微的記憶體、災害復原、數據安全性和多重雲端移轉。
  • Quobyte 提供高效能的檔案和物件記憶體,您可以在任何伺服器或雲端上部署,以調整效能、管理大量數據,以及簡化管理。
  • Ondat 可在任何平臺上提供一致的儲存層。 您可以在 Kubernetes 環境中執行資料庫或任何持續性工作負載,而不需要管理儲存層。

Kubernetes 記憶體考慮

當您選擇 Amazon EKS 或 AKS 的記憶體解決方案時,請考慮下列因素。

儲存體 類別存取模式

在 Kubernetes 1.21 版和更新版本中,AKS 和 Amazon EKS 記憶體類別預設只會使用容器 儲存體 介面 (CSI) 驅動程式

不同的服務支援具有不同存取模式的記憶體類別。

服務 ReadWriteOnce ReadOnlyMany ReadWriteMany
Azure 磁碟 X
Azure 檔案 X X X
Azure NetApp Files X X X
NFS 伺服器 X X X
Azure HPC Cache X X X

動態與靜態布建

動態布建磁碟區 ,以減少靜態建立永續性磁碟區的管理額外負荷。 設定正確的回收原則,以避免在刪除Pod時有未使用的磁碟。

Backup

選擇要備份永續性數據的工具。 此工具應符合您的記憶體類型,例如快照集、Azure 備份VeleroKasten

成本最佳化

若要將 Azure 儲存體 成本優化,請使用 Azure 保留。 請務必 檢查哪些服務支援 Azure 保留。 另請參閱 Kubernetes 叢集的成本管理。

參與者

本文由 Microsoft 維護。 原始投稿人如下。

主要作者:

其他投稿人:

若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。

下一步