什麼是 Azure 容器儲存體?
Azure 容器儲存體是雲端式磁碟區管理、部署和協調流程服務,專為容器原生建置。 它與 Kubernetes 整合,可讓您動態且自動佈建永續性磁碟區,以儲存 Kubernetes 叢集上執行之具狀態應用程式的資料。
重要
所有 Azure 區域都無法使用 Azure 容器儲存體。 查看區域供應情形。 Azure 容器儲存體現已正式發行 (GA),從 1.1.0 版開始。 建議對生產環境工作負載使用 GA 版本。 如果您先前安裝了 Azure 容器儲存體預覽版但未啟用自動升級,請務必更新為 GA 版本。
若要開始使用 Azure 容器儲存體,請參閱使用 Azure 容器儲存體搭配 Azure Kubernetes Service 或觀看影片。
這段影片會提供 Azure 容器儲存體的簡介,這是適用於具狀態應用程式的端對端記憶體管理和協調流程服務。 了解如何將 Azure Kubernetes Service (AKS) 上具狀態工作負載的效能最佳化,以有效地跨儲存體服務進行調整,同時提供符合成本效益的容器原生體驗。
支援的儲存體類型
Azure 容器儲存體會針對實際資料記憶體利用現有的 Azure 記憶體供應專案,並提供專為容器所建置的磁碟區協調流程和管理解決方案。 您可以選擇任何支援的備份記憶體選項,為您的永續性磁碟區建立存放集區。
Azure 容器儲存體針對以 Linux 為基礎的 Azure Kubernetes Service (AKS) 叢集提供 ReadWriteOnce 存取模式的持續磁碟區支援。 支援的備份儲存體選項僅包含區塊儲存體供應項目:Azure 磁碟、暫時性磁碟 (本機 NVMe 或暫存 SSD) 和 Azure 彈性 SAN (預覽)。 下表摘要說明支援的記憶體類型、建議的工作負載和佈建模型。
儲存體類型 | 說明 | 工作負載 | 供應項目 | 佈建模型 |
---|---|---|---|---|
Azure 彈性 SAN (預覽) | 隨選佈建、完全受控資源 | 一般用途資料庫、串流和傳訊服務、CD/CI 環境及其他第 1 層 2 層工作負載。 | Azure 彈性 SAN | 依建立的磁碟區和磁碟區快照集隨選佈建。 多個叢集可以同時存取單一 SAN,不過永續性磁碟區一次只能由一個取用者連結。 |
Azure 磁碟 | 細微控制記憶體 SKU 和設定 | Azure 磁碟非常適合第 1 層和一般用途資料庫,例如 MySQL、MongoDB 和 PostgreSQL。 | 進階 SSD、進階 SSD v2、標準 SSD、Ultra 磁碟 | 根據目標容器存放集區大小和磁碟區大小上限佈建。 |
暫時性磁碟 | 利用 AKS 節點上的本機儲存體資源 (NVMe 或暫存 SSD) | 暫時性磁碟對延遲非常敏感 (低子毫秒延遲),因此最適合不需要資料持久性的應用程式,或具有 Cassandra 等內建資料復寫支援的應用程式。 | NVMe 適用於某些 Azure VM SKU,例如 記憶體優化 VM SKU 或 GPU 加速的 VM SKU | 部署為裝載 AKS 叢集的 VM 的一部分。 AKS 會探索 AKS 節點上可用的暫時性記憶體,並取得它們以進行磁碟區部署。 |
不同儲存體類型的功能支援
功能支援取決於您選取的備份儲存體選項。 下表列出 Azure 容器儲存體的主要功能,並指出哪些儲存體選項提供支援。
功能 | 本機 NVMe | 本機 SSD | Azure 磁碟 | Azure 彈性 SAN (預覽) |
---|---|---|---|---|
存放集區擴充/調整大小 | 支援 | 支援 | 已支援 | 不支援 |
複寫 | 支援 | 不支援 | 原生支援 | 預覽 |
資源取用量 | 支援 | 支援 | 支援 | 預覽 |
SSE/CMK | 不支援 | 不支援 | 支援 | 預覽 |
公開 ZRS 選項 | N/A | N/A | 支援 | 預覽 |
永續性磁碟區 | 受支援1 | 受支援1 | 支援 | 預覽 |
暫時性磁碟區 | 支援 | 支援 | 支援 | 預覽 |
快照集 | 支援 | 支援 | 已支援 | 不支援 |
1 針對本機 NVMe 和本機 SSD,Azure 容器儲存體預設會使用一般暫時性磁碟區,其中的資料不會持久。 不過,您可以更新 Azure 容器儲存體安裝,以支援從暫時性磁碟存放集區建立永續性磁碟區。
區域可用性
Azure 容器儲存體僅適用於一部分的 Azure 區域:
- (非洲) 南非北部
- (亞太地區) 澳大利亞東部
- (亞太地區) 東亞
- (亞太地區) 日本東部
- (亞太地區) 南韓中部
- (亞太地區) 東南亞
- (亞太地區) 印度中部
- (歐洲) 法國中部
- (歐洲) 德國中西部
- (歐洲) 歐洲北部
- (歐洲) 西歐
- (歐洲) 英國南部
- (歐洲) 瑞典中部
- (歐洲) 瑞士北部
- (中東) 阿拉伯聯合大公國北部
- (北美洲) 美國東部
- (北美洲) 美國東部 2
- (北美洲) 美國西部
- (北美洲) 美國西部 2
- (北美洲) 美國西部 3
- (北美洲) 美國中部
- (北美洲) 美國中北部
- (北美洲) 美國中南部
- (北美洲) 美國中西部
- (北美洲) 加拿大中部
- (北美洲) 加拿大東部
- (南美洲) 巴西南部
Azure 容器儲存體的新功能
我們的最新更新增強了具狀態容器的復原能力和效能。 我們現在為本機 NVMe 存放集區提供了多區域存放集區和磁碟區複寫,以確保單一節點故障期間的可用性。 用於備份和災害復原的所有儲存體選項都提供快照支援。 此外,暫時性磁碟組合現在包含暫存 SSD 支援,為利用直接連結本機儲存體的使用案例提供符合成本效益的解決方案:
- 透過復寫支援,增強裝載在本機 NVMe 記憶體上之永續性磁碟區的復原能力。
- 改善了 Azure Kubernetes Service (AKS) 叢集重新啟動後的永續性磁碟區的復原能力。
- 使用新的效能層級選項自訂本機 NVMe 儲存體的效能。
如需這些功能的詳細資訊,請將電子郵件傳送至 containerstoragepm@microsoft.com 以聯絡 Azure 容器儲存體團隊。
Azure 容器儲存體爲什麽很有用
到目前為止,為使用個別容器記憶體介面 (CSI) 驅動程式所需的容器提供雲端記憶體,以使用適用於 IaaS 中心工作負載的記憶體服務,並讓它們適用於容器。 雖然 CSI 驅動程式在某些案例中很有用,但依賴它們可能會建立作業額外負荷,並增加應用程式可用性、延展性、效能、可用性和成本問題的風險。
儘管其名稱為 Azure Container Storage,但不會使用 CSI 驅動程式。 相反地,它是衍生自 OpenEBS,這是一個開放原始碼解決方案,可提供 Kubernetes 的容器記憶體功能。 透過 Kube 環境中的微服務型記憶體控制器提供受控磁碟區協調流程解決方案,Azure 容器儲存體會啟用真正的容器原生記憶體。
您可以使用 Azure 容器儲存體來:
加速 VM 對容器計劃: Azure 容器儲存體會顯示先前僅適用於 VM 且可供容器使用的 Azure 區塊儲存體供應專案的完整範圍。 這包括暫時性磁碟,可為 Cassandra 等工作負載提供極低的延遲,以及提供原生 iSCSI 和共用佈建目標的 Azure 彈性 SAN (預覽)。
簡化 Kube 的磁碟區管理: 透過 Kube 控制平面提供磁碟區協調流程,Azure 容器儲存體可讓您輕鬆地在 Kube 內部署和管理磁碟區,而不需要在不同的控制平面之間來回移動。
降低總擁有成本 (TCO): 藉由增加每個 Pod 或節點支援的永續性磁碟區規模來提升成本效益。 藉由動態共用儲存體資源來減少佈建所需的儲存體資源。 請注意,不支持儲存體集區本身的相應擴大支援。
重點優勢
快速擴增具狀態 Pod: Azure 容器儲存體會透過網路區塊儲存體通訊協定 (NVMe-oF 或 iSCSI) 裝載永續性磁碟區,提供持續性磁碟區的快速連結和中斷連結。 您可以視需要一點點開始部署資源,同時確定應用程式不會在初始化期間或實際執行環境中耗盡或中斷。 應用程式復原功能已透過 Pod 重新產生整個叢集來改善,需要快速移動永續性磁碟區。 利用遠端網路通訊協定,Azure 容器儲存體緊密結合 Pod 的生命週期,以支援 AKS 上具有高度彈性、高規模的具狀態應用程式。
改善具狀態工作負載的效能: Azure Container Storage 可提升讀取效能,並使用 NVMe-oF over TCP 提供近乎磁碟的寫入效能。 這可讓客戶符合各種容器工作負載的效能需求,包括第 1 層 I/O 密集、一般用途、輸送量敏感性和開發/測試。 加速永續性磁碟區的連結/中斷連結時間,並將 Pod 容錯移轉時間降到最低。
Kube 原生磁碟區協調流程: 建立存放集區和永續性磁碟區、擷取快照集,以及使用
kubectl
命令來管理磁碟區的整個生命週期,而不需在不同控制平面作業的工具組之間切換。
字彙
了解與 Azure 容器儲存體和 Kube 相關的一些重要字詞幫助會很大:
容器化
只用作業系統和必要的相依性來封裝應用程式程式碼,以建立單一可執行檔。
Kubernetes
Kubernetes 是開放原始碼系統,用於自動部署、縮放和管理容器化應用程式。
Cluster
Kube 叢集是一組執行容器化應用程式的計算節點 (VM)。 每個節點都是由控制平面管理,並包含執行 Pod 所需的服務。
Pod
Pod 是一或多個容器的群組,其中包含共用儲存體和網路資源,以及如何執行容器的規格。 Pod 是 Kubernetes 叢集中最小的可部署單位。
Azure Kubernetes Service (AKS)
Azure Kubernetes Service (AKS) 是個裝載的 Kube 服務,藉由將作業額外負荷卸載至 Azure 來簡化在 Azure 中部署受控 Kube 叢集的作業。 Azure 會處理重要的工作,例如狀況監控和維修。
存放集區
Azure 容器儲存體堆疊會嘗試跨叢集擁有的資源和平台抽象概念統一物件模型。 若要完成統一表現,可用的儲存容量會匯總成存放集區物件。 存放集區內的儲存容量會視為同質。 AKS 叢集可以有多個存放集區。 存放集區也可做為驗證和佈建界限。 它們為操作員提供邏輯建構來管理儲存體基礎結構,同時簡化應用程式開發人員的磁碟區建立和管理。
儲存類別
Kube 儲存類別可用來定義如何搭配永續性磁碟區動態建立儲存體單位。 如需詳細資訊,請參閱 Kube 儲存體類別。
體積
Kubernetes 磁碟區是一個目錄,其中包含指定 Pod 中容器可存取的資料。 磁碟區可為持續性或暫時性。 磁碟區會精簡佈建在存放集區內,並共用存放集區的效能特性 (IOPS、頻寬和容量)。
永續性磁碟區
永續性磁碟區就像 VM 中的磁碟。 它們代表可用來裝載任何檔案系統的原始區塊裝置。 應用程式開發人員會與其應用程式或 Pod 定義一起建立永續性磁碟區,而磁碟區通常會繫結至具狀態應用程式的生命週期。 如需詳細資訊,請參閱持續性磁碟區。
永續性磁碟區宣告 (PVC)
永續性磁碟區宣告可用來根據儲存體類別自動佈建儲存體。