TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Nomad (Hashicorp) vs. Kubernetes?

12 pointsby albertlieabout 7 years ago
Hi all,<p>I&#x27;m currently looking for container orchestration tools in my current company. We have our applications across multiple data centers (GCP, AWS, Alicloud).<p>From my research, I found out that the most common ones are Nomad and Kubernetes. Anyone has experience running either Nomad or Kubernetes in production? Furthermore, maybe the drawback and benefit from your experiences?<p>Thanks

3 comments

SkyRocknRollabout 7 years ago
We use nomad in production for last 3 years. Recently we thought of moving to kubernetes and did a prototype for one of our products because of community is big and growing. After looking at the sheer complexity we decided to stick with nomad. The best part about nomad is it solves single problem very well and it is very simple to understand and maintain. Developers are able to grok the nomad in matter of minutes which is a big win for us because they are the one who writes nomad files.
djhaskin987about 7 years ago
Kubernetes and Nomad are resource schedulers. Resource scheduling is a hard problem. For example, Linux is also a resource scheduler.<p>Right now, we&#x27;re seeing something similar to the OS wars in the 80&#x27;s, 90&#x27;s and 2000&#x27;s. Back then there was Solaris, Linux, Unix, BSD, etc. In the 2000&#x27;s, Linux won. After that, the sheer force of community made it easy to deploy and use.<p>The community around Linux mitigated its complexity by making distributions -- opinionated choices around how to set up linux, including what package manager to use, what init process to use, etc.<p>Kubernetes is, in my opinion, far more complicated than Nomad, but it&#x27;s also more feature rich. To mitigate that complexity, quasi-distributions of kubernetes are emerging, like kops ( <a href="https:&#x2F;&#x2F;github.com&#x2F;kubernetes&#x2F;kops" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kubernetes&#x2F;kops</a> ) and kubespray ( <a href="https:&#x2F;&#x2F;github.com&#x2F;kubernetes-incubator&#x2F;kubespray" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kubernetes-incubator&#x2F;kubespray</a> ). My personal favorite is Typhoon ( <a href="https:&#x2F;&#x2F;typhoon.psdn.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;typhoon.psdn.io&#x2F;</a> ), because it uses a &quot;package manager&quot; (software delivery mechanism) that allows you to declare dependencies between packages and also allows you to deploy the entire cluster from the ground up -- Hashicorp&#x27;s Terraform ( <a href="https:&#x2F;&#x2F;www.terraform.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.terraform.io&#x2F;</a> ).<p>The kubernetes package manager is helm ( <a href="https:&#x2F;&#x2F;helm.sh&#x2F;" rel="nofollow">https:&#x2F;&#x2F;helm.sh&#x2F;</a> ), but if I were you I&#x27;d wrap helm charts in terraform modules using the helm provider ( <a href="https:&#x2F;&#x2F;github.com&#x2F;mcuadros&#x2F;terraform-provider-helm" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mcuadros&#x2F;terraform-provider-helm</a> ).<p>By contrast, Nomad is much simpler to set up and has a much better modular design. But then, so did the OS GNU Hurd. And no one uses that anymore. Kubernetes is much more monolithic in design (huh, so is Linux).<p>Therefore, I would choose kubernetes, but treat it like an OS. It&#x27;s complicated. Don&#x27;t choose what ingress you will use. Instead choose what <i>distribution</i> you will use, and let the distribution guide your decisions, unless you have a good reason.<p>Realize that you&#x27;re learning an OS (resource scheduler = os in my head). Kubernetes has more complexity than Nomad up front, but at least it&#x27;s not accidental complexity. K8s calls the resource scheduler problem what it is -- hard, and treats it appropriately.<p>The other safe bet is Terraform as the package manager. Choose a kubernetes distro that uses it (Typhoon, Kops). It is getting <i>huge</i>.<p>Kubernetes&#x27; extensible API is what really makes it cool. Having a prometheus operator ( <a href="https:&#x2F;&#x2F;github.com&#x2F;coreos&#x2F;prometheus-operator" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;coreos&#x2F;prometheus-operator</a> ) automatically monitor your services for you is pretty nice.<p>Finally, don&#x27;t expect the stability you see in the Linux OS. Kubernetes is still coming out of the primordial ooze, though it&#x27;s way more mature than Nomad in its community. Still, when a google search for how to do something on a cluster mostly turns up github issues, you know we&#x27;re still in the early stages.<p>That said, Nomad is way easier to set up, and supports things like raw execution, JVM direct execution, and chrooted exec, so if you can&#x27;t use containers at least you can still use a cluster. You&#x27;ll be rigging everything yourself, but raw execution actually gives you a lot of rope ( <a href="https:&#x2F;&#x2F;github.com&#x2F;hashicorp&#x2F;nomad&#x2F;issues&#x2F;150" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;hashicorp&#x2F;nomad&#x2F;issues&#x2F;150</a> ). So if you need to do something really custom, Nomad might not be so bad. Kind of like embedded Linux.
评论 #16607947 未加载
jeskieabout 7 years ago
Have you looked at Mesosphere DC&#x2F;OS?