6 ms·
Great post - I hadn't heard of Nomad Pack, and I have a small-ish deployment of ~20 nodes. There are many reasons to love Nomad, like its straight-forward arch
by MoOmer 4y ago
Great post - I hadn't heard of Nomad Pack, and I have a small-ish deployment of ~20 nodes.
There are many reasons to love Nomad, like its straight-forward architecture, how it plays well with other binaries to augment its functionality (Consul & Vault), super easy service mesh with Consul Connect + Traefik, and the ease of defining complex applications/architectures with the Job Spec [0].
I've used k8s a few times for work, but I just love Nomad.
[0]: https://www.nomadproject.io/docs/job-specification https://www.nomadproject.io/docs/job-specification
- kungfufrog 4y agoI love nomad too. Quick question, how have you solved ingress using nomad + consul connect for service mesh? The big thing for me is needing mTLS support for some of my services.
- chucky_z 4y agoYea consul connect is a good choice for mTLS, it's enforced by default with no way to turn it off. You can also go DIY with something like Traefik and just configure everything to require TLS with client TLS pass-through for enforced mutual TLS, that puts you into 'require a set of central load balancers' but you still get all the benefits.
- MoOmer 4y agoI use Consul Connect + Traefik annotations, and am planning to write about it soon. If you want a sneak peak, I'm happy to screen-share the config to get you going, ping me at the email in my profile!
- candiddevmike 4y agoI'm not sure where I'd use Nomad Pack vs Waypoint or Terraform. Any HashiCorp folks care to chime in?
- schmichael 4y agoGreat question. I know it can be frustrating that we don't answer this directly anywhere, but Pack and Waypoint are evolving so quickly the guidance would likely need regular updating. HashiCorp has always tried to loosely couple our products so that while they work Better Together, they also work independently and allow users to choose the bits and pieces that fit their needs best. My general suggestions for this question are that Terraform is what you should be creating your Nomad clusters with. In the cloud you can use it to define your autoscaling groups, load balancers, and use Packer to create golden images for Nomad servers and clients. While Terraform is also useful for deploying "base" system jobs like log shippers or metrics aggregators, I generally don't recommend deploying all of your workloads with Terraform. You generally want more fine grained control over things like promoting-canaries-during-deployments than Terraform's architecture or interface could possibly support. So now your left with how to run all of your workloads. Lots of folks hit the Nomad API or use the Nomad CLI straight from the CI runners, but Waypoint and Pack offer some useful tools. Waypoint has more application developer oriented tooling than Pack. It's a developer experience oriented tool where Pack is more like Helm and oriented toward offering a package management solution for clusters. Since Waypoint manages building your project, it's a much more opinionated tool than Pack. You likely want to use Waypoint throughout your application development process. Pack is much more useful if you just want to "package up" a bunch of existing code, whether your own or 3rd party, and run it in your cluster. It's intended to eventually have an extensive public registry/catalog of popular software ready to run in your cluster. This isn't an area Waypoint is concerned with at all. Hope that helps!