Nomad 會替代 Kubernetes 嗎?對比一下,兩者如何選擇?
Kubernetes 由 Google 孵化并得到持續(xù)的社區(qū)支持,實際上是容器編排的理想之選。然而,Kubernetes 并不是適用于所有用例的解決方案。正如許多開發(fā)人員提到新功能的復雜性一樣,開發(fā)人員將[1]疑慮和安全錯誤配置[2]視為實施的潛在障礙。并不是說這些問題無法克服,但大多數(shù)用戶承認 Kubernetes 固有的復雜性使得平臺的入門和安全[3]變得相當混亂。
Nomad 到底是什么?
Nomad 是Hashicorp的一個編排工具,允許用戶部署和管理不同類型的應用程序,例如:
- 支持容器
- 支持傳統(tǒng)的應用程序棧。
- 支持微服務應用程序。
- 支持批量應用。
從上面看,Nomad 看起來像這樣
使 Nomad 有用的是一組豐富的 API:
- 幫助我們自動化部署、應用程序擴展和升級。
- 使開發(fā)人員能夠直接管理部署。
- 自動管理故障。
- 隱藏節(jié)點管理等復雜細節(jié),讓用戶只選擇啟動和運行應用程序所需的內(nèi)容。
如前所述,Docker 是受支持的,但是任何類型的應用程序都可以在需要的任何類型的操作系統(tǒng)上使用(Linux、Windows、BSD 和 OSX 都支持)??梢詣?chuàng)建集群,添加來自不同數(shù)據(jù)中心和不同區(qū)域的節(jié)點。
最后,Nomad 是一個高度可擴展的工具,它允許用戶超越標準擴展概念的限制。
為什么是 Nomad?
Nomad 和 Kubernetes 的主要區(qū)別在于 Nomad 更加通用和輕量級。Nomad 可以像一個簡單的任務調(diào)度程序一樣工作,也可以根據(jù)項目規(guī)范承擔更重的編排角色。Nomad 是由 HashiCorp 生產(chǎn)的補充工具組成的套件的一部分:
- Terraform,用于快速基礎設施開發(fā)
- Consul,用于自動服務網(wǎng)絡
- Vault,Hashicorp 的 secrets 管理工具
比較
Kubernetes 是一個端到端的容器編排平臺,它依賴于各種松散耦合組件的動態(tài)生態(tài)系統(tǒng)。
Nomad 在架構上要簡單得多,但提供了與強大的協(xié)調(diào)器相同的功能。這兩個平臺有相同點,也有異同點,具體請往下看。
相同點
Kubernetes 和 Nomad 都是為容器編排和支持類似用例而構建的開源工具。因此,兩者都具有許多共同特征:
差異點
盡管這兩個平臺都適用于容器編排,但 Nomad 和 Kubernetes 有一些根本區(qū)別:
優(yōu)缺點
選擇哪一個?
結(jié)論
Kubernetes 是一個獨立的編排工具,具有許多內(nèi)置服務,可提供運行基于容器的應用程序所需的所有功能。它有龐大及時響應的社區(qū)支持,提供豐富的工具包和大量開箱即用的解決方案。但是,手動設置很困難,并且僅針對容器化應用程序而設計。
相比之下,Nomad 易于安裝和操作,因為它只專注于集群管理。它還支持各種類型的工作負載,但它提供的功能有限,需要安裝第三方工具來解決 Kubernetes 默認實現(xiàn)的任務。
如果您的應用程序需要額外的功能,并且您愿意花時間學習該工具,那么 Kubernetes 可能是更好的選擇。但是,如果您更喜歡沒有附加功能的更簡單的工作流程,那么 Nomad 可能適合您的應用程序。最終,您選擇哪種工具取決于您的用例以及您在生產(chǎn)周期中實施該工具的能力。從來沒有一種工具適合所有人,所以在做出決定時,請務必考慮上述因素。