使用HashiCorp Nomad按需分配容器存储
這是來自Portworx的解決方案架構師Jeff Silberman的客座文章。
沒有人想要管理存儲,但是高價值的應用程序沒有它是無法運行的。在理想的情況下,存儲“就在那里”,而不需要考慮它——或者提供和管理它,對嗎?
Portworx是一個針對容器工作負載的軟件定義的持久存儲解決方案,它提供了一個高度可用的彈性數據結構。Portworx云原生存儲允許作業無縫運行超級融合的存儲層,以獲得最佳性能——同時也為數據可用性提供了豐富的選項。
最重要的是,Portworx非常適合DevOps——它易于部署和使用。
按需存儲
有多容易?那么,如果您的HashiCorp Nomad作業可以按需存儲,并在運行時提供呢?就像這樣:
[...]task "mysql-server" {driver = "docker"config {image = "mysql/mysql-server:8.0"port_map {db = 3306}volumes = ["name=mysqlvol,size=10,repl=3/:/var/lib/mysql",]volume_driver = "pxd"}[...]讓我們看看這意味著什么。當mysql任務啟動時,mysqlvol將以10GB的size和3倍的復制因子動態創建,確保數據將在3個不同的節點上復制。
不需要單獨的存儲供應周期,因為容器粒度虛擬卷是按需創建的。
什么是Portworx ?它是如何工作的?
在底層,Portworx是一個分布式塊設備驅動程序,作為容器交付,安裝在運行有狀態應用程序的Nomad客戶機上。Portworx并不僅僅充當現有存儲的連接器,而是與您現有的節點運行高度聚合的關系,為在容器中運行的應用程序提供稀疏的、容器粒度的虛擬卷(和快照)。將塊數據復制到多個節點可以保證高可用性。
Portworx使用kvdb,類似Consul,用于集群/節點拓撲發現和控制路徑操作——但不用于任何數據路徑操作,因此可以解決圍繞可伸縮性和I/O性能的主要問題。
對于Nomad來說,Portworx運行在system調度器之下,這意味著如果將新的Nomad客戶端添加到集群中,那么Portworx也會自動在這些客戶機上運行。system調度器與彈性自動縮放組(ASGs)的概念非常一致,允許Portworx在新的客戶端節點上自動旋轉,無需手動安裝。
Portworx在Nomad客戶端(不是服務器)上運行。以下是Nomad客戶端需要的相關選項:
client {enabled = trueoptions {"driver.raw_exec.enable" = "1""docker.privileged.enabled" = "true"} }如果你想深入了解,這很簡單。Portworx doc站點已經被更新,包括詳細的(和簡單的)說明如何在Nomad下安裝Portworx。
基礎設施代碼
“按需存儲”功能與編寫基礎設施的HashiCorp道一致。存儲需求是計算工作負載的一個基本元素,對于持久工作負載更是如此。到目前為止,提供存儲一直是提交“票據”的帶外過程——這是自動化的一個詛咒?,F在有了Portworx內聯卷規格——或者“隨需存儲”,“存儲供應周期”就過時了。Jobs根據需要按需存儲。
促進高效的工作流程
容器粒度卷快照是Portworx免費提供的一個有價值的企業特性。快照是即時創建的、在寫入時復制的元數據標記,在創建時不消耗任何空間。更好的是,快照是可讀/可寫的。例如,假設您想要為CICD主構建周期的輸出創建一個副本,以便將其傳遞給多個Jenkins slave以進行并行處理。使用Portworx,您可以通過創建多個卷快照,并讓每個Jenkins slave在它自己的副本上并行操作來實現這一點。計算和存儲效率的提高是顯著的。
自己試試
DevOps的簡單性已經成為一個產品基礎——以內聯體創建功能為例。沒有人想要一個陡峭/復雜的學習曲線,這就是為什么Portworx讓試驗變得盡可能簡單和無摩擦:該產品附帶一個免費的30天試用許可證,所有功能都啟用了。
自己嘗試這個只有兩個小需求:訪問外部的“kvdb”,比如Consul。主機上的一個或多個未掛載/未格式化的原始設備(分區或磁盤)。
如果您已經有一個工作的Nomad集群滿足這些需求,那么您可以立即嘗試一下。這里有一個用于啟動Portworx的參考Nomad作業文件。
如果您沒有多余的Nomad集群可以嘗試,您也可以輕松地玩轉。Hashi-Porx AWS存儲庫提供了一個完整的集群,其中包含AWS中的Portworx/Nomad/Consul。在Hashi-Porx Vagrant 庫中,Nomad和Consul都運行在-dev模式下的一個小小的Portworx集群上。
少即是多
沒有比這更真實的了,尤其是在DevOps的世界里。你管理的東西越少,你的生活就會越好。Portworx特別設計來支持DevOps自動化,并允許容器的持久存儲,以便高價值的有狀態應用程序(比如數據庫)能夠在容器中運行。
我們很高興能夠為HashiCorp Nomad生態系統做出貢獻,以更好地實現有意義的自動化工作流——減少實際工作。
總結
以上是生活随笔為你收集整理的使用HashiCorp Nomad按需分配容器存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BaaS后端即服务 - 分析篇
- 下一篇: Consul与外部服务