<object id="3iwlw"><noframes id="3iwlw"></noframes></object>

      <th id="3iwlw"></th>

    1. <rp id="3iwlw"></rp>
      <rp id="3iwlw"></rp>

    2. <button id="3iwlw"></button>
      云計算·大數據 頻道

      8 個用于 Kubernetes 持久化存儲的 CNCF 項目

      在容器化方面,數據的持久化存儲是個難題。臨時容器是一個短暫的計算環境,其中代碼不會永遠存儲。但是您仍然需要將數據存儲在某個物理磁盤上!

      容器的高度可變性與有狀態存儲的需求不一致,這是一個引入了無數解決方法的難題。針對 Kubernetes 中有狀態的服務 ,通常必須依靠外部工具和數據庫來保存和傳輸這些數據。

      CNCF 擁有廣泛的與 Kubernetes 集成的持久數據存儲工具,以幫助管理使用持久存儲卷的管理任務。下面,我們將回顧 CNCF 托管的其中一些工具。這些軟件包的范圍從提供云原生存儲、在客戶端應用程序和存儲之間提供標準接口以及提供數據備份和恢復選項。

      1. Rook

      Kubernetes 的存儲編排

      網站:https://rook.io/

      GitHub:https://github.com/rook/rook

      持久存儲系統需要大量維護以維持運營。Rook 是 Kubernetes 的開源云原生存儲實用程序,旨在自動化存儲管理員的一些任務,例如程序化存儲、遷移、災難恢復、監控和資源管理。Rook 支持文件、塊和對象存儲類型。

      Rook 實際上利用了 Kubernetes 的架構,使用了 K8s Operator。截至 2022 年,CNCF 畢業項目 Rook 支持三個存儲提供商:Ceph[1]、Cassandra[2] 和 NFS[3]??梢栽诖颂幉榭?Rook論壇[4]以了解項目的最新信息并提出問題。

      2. Longhorn

      基于 Kubernetes 構建的云原生分布式存儲

      GitHub:https://github.com/longhorn/longhorn

      網站:https://longhorn.io/

      Longhorn 是 Kubernetes 分布式塊存儲的開源工具。使用 Longhorn,您可以為 Kubernetes 集群復制存儲,并利用持久卷的內置增量備份。您可以使這些快照重復出現并將它們備份到輔助對象存儲。這是通過“將大型塊存儲控制器劃分為多個較小的存儲控制器”來實現的,從而有助于緩解與各種基于容器的微服務的存儲相關的問題。

      Longhorn 還與非云托管的 K8s 集群兼容,并具有可免費使用的圖形管理 UI。與 Rook 類似,它是 Kubernetes 原生的。Longhorn 最初由 Rancher 開發,現在是 CNCF 內的一個 孵化項目[5]。

      3.CubeFS

      云原生分布式文件系統和對象存儲。

      GitHub:https://github.com/cubeFS/cubefs

      網站:https://cubefs.io/

      CubeFS,原名 ChubaoFS,是一個分布式文件系統,旨在支持大規模的云原生架構。研究發現,與 Ceph 相比,CFS 的速度大約快三倍。CubeFS 的功能是讓容器集群中托管的客戶端應用程序與元數據子系統和數據子系統通信的卷對話。這些卷可以部署到各種容器中,以實現許多不同客戶端之間的文件共享。

      CubeFS 的高級底層元數據子系統本身是分布式的,以提高性能和可擴展性。CubeFS 可用作多租戶訪問的通用存儲引擎或確保同一文件副本的一致性。正如文檔[6]所述,像 CubeFS 這樣的分布式文件系統尤其有助于創建機器學習模型。目前,CubeFS 是 CNCF 中的一個孵化項目。

      4.K8up

      Kubernetes 和 OpenShift 備份 operator

      GitHub:https://github.com/k8up-io/k8up

      網站:https://k8up.io/

      K8up 被其創建者親切地稱為“番茄醬”,是用于執行備份的 Kubernetes operator。K8up 可通過 Helm Chart 方便地分發,易于為特定的云原生備份用例部署和定制。K8up 可用于自動備份任何標記為ReadWriteMany或帶有自定義標簽的持久卷聲明 (PVC)。您還可以使用 K8up 啟動按需備份、安排例行備份、安排長期存檔以及查看和管理備份。K8up 可與 S3 兼容的存儲一起使用。目前,K8up 是 CNCF 的沙盒項目。

      5.OpenEBS

      開源 container-attached 存儲(CAS)

      GitHub:https://github.com/openebs/openebs

      網站:https://www.openebs.io/

      OpenEBS 是另一個開源項目,旨在幫助簡化使用云原生基礎架構維護有狀態工作負載的過程。借助 OpenEBS,開發人員可以使用熟悉的 K8s 命令和 API 來控制特定容器的工作負載存儲。存儲軟件本身由 Kubernetes 容器化和編排。該項目將此設置稱為容器附加存儲 (CAS)。OpenEBS 最初由 MayaData 創建和贊助,目前,是 CNCF 的一個沙盒項目。

      6. ORAS

      OCI registry-as-storage

      GitHub:https://github.com/oras-project/oras

      網站:https://oras.land/

      您可能熟悉Open Container Initiative[7] (OCI),該組織為容器設置行業標準格式。一種這樣的格式是分發規范[8],它定義了存儲、處理和拉取容器鏡像的標準方法。

      開發人員也開始使用 OCI 注冊表來存儲非容器類型。因此,OCI 工件[9]創建來定義這些任意存儲類型。最后,OCI registry-as-storage (ORAS) 是一個實用程序,專門幫助從 OCI 注冊中心推送和拉取這些通用 OCI 工件。迄今為止,幾乎沒有實施 ORAS。該文檔僅引用 Singularity 和 Helm 項目作為當前實現。ORAS 是 CNCF 的沙盒項目。

      7. Piraeus Datastore

      Kubernetes 的高可用數據存儲

      GitHub:https://github.com/piraeusdatastore/piraeus

      網站:https://piraeus.io/

      Piraeus 是一個開源云原生存儲系統,旨在與 Kubernetes 本地持久卷一起使用。該實用程序提供動態配置、資源管理和高可用性等功能,為有狀態工作負載啟用故障轉移過程。與此列表中的其他項目相比,Piraeus 非常易于使用,并且開始只需要幾個命令。如果您的項目僅使用本地存儲,Piraeus 是一個不錯的選擇。目前,Piraeus 是 CNCF 的沙盒項目。

      8. Vineyard

      內存中不可變的數據管理器

      GitHub:https://github.com/v6d-io/v6d

      網站:https://v6d.io/

      與本文的其他項目不同,Vineyard (v6d) 的獨特之處在于它專注于內存數據存儲。Vineyard 適用于大型數據系統,因為它使用零拷貝數據共享來減少冗余處理。它提供了一種抽象的方式來處理可能利用圖形數據庫的多個計算框架。目前,Vineyard 是一個沙盒 CNCF 項目。

      總結

      要在 Kubernetes 中實現 持久存儲[10],必須定義一個持久卷[11],其中有許多StorageClasses[12]用于各種存儲類型。例如,您使用本地存儲并可以指向運行 Kubernetes 的主機上的特定文件夾,但這并不總是最佳實踐,因為您經常需要跨節點共享存儲。運行 NFS 服務器是一種選擇,但大多數用例都希望將云存儲作為持久卷。

      無論他們使用何種基礎架構,工程師和 ITOps 都需要輕松訪問以存儲和檢索數據。為了獲得云原生生態系統的全部優勢,將存儲與終端節點解耦并在整個容器生態系統中進行智能編排非常重要。正如我們在上面看到的,CNCF 中有許多項目試圖簡化將 Kubernetes 與持久的、有狀態的存儲結合起來的過程。

      0
      相關文章
        漂亮的苏酥全文阅读