Nomad 會(huì)替代 Kubernetes 嗎?對(duì)比一下,兩者如何選擇?
根據(jù)目前的市場(chǎng)狀況,大多數(shù)人都同意 Kubernetes(又名“K8s”)贏得了容器編排之戰(zhàn),戰(zhàn)勝了 Docker Swarm 和 Mesos 等替代品。但在 K8s (2014) 的同一時(shí)間還有另一個(gè)編排項(xiàng)目,那就是?HashiCorp 的 Nomad。(2015)
Kubernetes 由 Google 孵化并得到持續(xù)的社區(qū)支持,實(shí)際上是容器編排的理想之選。然而,Kubernetes 并不是適用于所有用例的解決方案。正如許多開(kāi)發(fā)人員提到新功能的復(fù)雜性一樣,開(kāi)發(fā)人員將疑慮和安全錯(cuò)誤配置視為實(shí)施的潛在障礙。并不是說(shuō)這些問(wèn)題無(wú)法克服,但大多數(shù)用戶承認(rèn) Kubernetes 固有的復(fù)雜性使得平臺(tái)的入門和安全變得相當(dāng)混亂。
Nomad 到底是什么?
Nomad 是Hashicorp的一個(gè)編排工具,允許用戶部署和管理不同類型的應(yīng)用程序,例如:
-
支持容器 -
支持傳統(tǒng)的應(yīng)用程序棧。 -
支持微服務(wù)應(yīng)用程序。 -
支持批量應(yīng)用。
從上面看,Nomad 看起來(lái)像這樣

使 Nomad 有用的是一組豐富的 API:
-
幫助我們自動(dòng)化部署、應(yīng)用程序擴(kuò)展和升級(jí)。 -
使開(kāi)發(fā)人員能夠直接管理部署。 -
自動(dòng)管理故障。 -
隱藏節(jié)點(diǎn)管理等復(fù)雜細(xì)節(jié),讓用戶只選擇啟動(dòng)和運(yùn)行應(yīng)用程序所需的內(nèi)容。
如前所述,Docker 是受支持的,但是任何類型的應(yīng)用程序都可以在需要的任何類型的操作系統(tǒng)上使用(Linux、Windows、BSD 和 OSX 都支持)??梢詣?chuàng)建集群,添加來(lái)自不同數(shù)據(jù)中心和不同區(qū)域的節(jié)點(diǎn)。
最后,Nomad 是一個(gè)高度可擴(kuò)展的工具,它允許用戶超越標(biāo)準(zhǔn)擴(kuò)展概念的限制。
為什么是 Nomad?
Nomad 和 Kubernetes 的主要區(qū)別在于 Nomad 更加通用和輕量級(jí)。Nomad 可以像一個(gè)簡(jiǎn)單的任務(wù)調(diào)度程序一樣工作,也可以根據(jù)項(xiàng)目規(guī)范承擔(dān)更重的編排角色。Nomad 是由 HashiCorp 生產(chǎn)的補(bǔ)充工具組成的套件的一部分:
-
Terraform,用于快速基礎(chǔ)設(shè)施開(kāi)發(fā) -
Consul,用于自動(dòng)服務(wù)網(wǎng)絡(luò) -
Vault,Hashicorp 的 secrets 管理工具
比較
Kubernetes 是一個(gè)端到端的容器編排平臺(tái),它依賴于各種松散耦合組件的動(dòng)態(tài)生態(tài)系統(tǒng)。
Nomad 在架構(gòu)上要簡(jiǎn)單得多,但提供了與強(qiáng)大的協(xié)調(diào)器相同的功能。這兩個(gè)平臺(tái)有相同點(diǎn),也有異同點(diǎn),具體請(qǐng)往下看。
相同點(diǎn)
Kubernetes 和 Nomad 都是為容器編排和支持類似用例而構(gòu)建的開(kāi)源工具。因此,兩者都具有許多共同特征:

差異點(diǎn)
盡管這兩個(gè)平臺(tái)都適用于容器編排,但 Nomad 和 Kubernetes 有一些根本區(qū)別:

優(yōu)缺點(diǎn)

選擇哪一個(gè)?

結(jié)論
Kubernetes 是一個(gè)獨(dú)立的編排工具,具有許多內(nèi)置服務(wù),可提供運(yùn)行基于容器的應(yīng)用程序所需的所有功能。它有龐大及時(shí)響應(yīng)的社區(qū)支持,提供豐富的工具包和大量開(kāi)箱即用的解決方案。但是,手動(dòng)設(shè)置很困難,并且僅針對(duì)容器化應(yīng)用程序而設(shè)計(jì)。
相比之下,Nomad 易于安裝和操作,因?yàn)樗粚W⒂诩汗芾?。它還支持各種類型的工作負(fù)載,但它提供的功能有限,需要安裝第三方工具來(lái)解決 Kubernetes 默認(rèn)實(shí)現(xiàn)的任務(wù)。
如果您的應(yīng)用程序需要額外的功能,并且您愿意花時(shí)間學(xué)習(xí)該工具,那么 Kubernetes 可能是更好的選擇。但是,如果您更喜歡沒(méi)有附加功能的更簡(jiǎn)單的工作流程,那么 Nomad 可能適合您的應(yīng)用程序。最終,您選擇哪種工具取決于您的用例以及您在生產(chǎn)周期中實(shí)施該工具的能力。從來(lái)沒(méi)有一種工具適合所有人,所以在做出決定時(shí),請(qǐng)務(wù)必考慮上述因素。
原文:https://mp.weixin.qq.com/s/jFYYXEcEwkOZAx7YSDeV7A