Live data from Hacker News

Running Nomad for a Home Server

mrkaran.dev

141–150 of 153 posts

Re: Running Nomad for a Home Server

#141
post #138
post #33

Earlier quoted context omitted.

> of secret management, load balancing, config management, routing, orchestration beyond workloads (e.g. storage), rollbacks/rollouts Nomad does all of these either natively ( rollbacks/rollouts) or via external tooling ( Vault, Consul, a load balancer). Unix philosophy and all that, and besides, Kubernetes doesn't do load balancing, and secret management is a joke.

If it does these things through external integrations, it’s not really something Nomad does.

By that logic, Kubernetes does nothing that is offloaded to operators, CRDs, CSI plugins, etc. The fact that you can extend it with extra features and it supports that is kinda doing something.

Re: Running Nomad for a Home Server

#142
post #32
post #2

Nomad is good at running all sort of workloads, not just container workloads. Also there is a plugin[0] to run containers without docker so Nomad is headed in the right direction for scenarios where you only need a scheduler. [0] https://github.com/Roblox/nomad-driver-containerd

Nomad already has a first-party driver for podman, doesn't that do it?

Author (https://github.com/Roblox/nomad-driver-containerd) here.

Not really, Podman and containerd are two different technologies, although both allow you to move away from Docker for various reasons (smaller CPU, memory footprint, better security etc). If you are invested into Red Hat container stack, podman makes more sense. However containerd is more universal.

K8s is already moving away from docker, and directly into containerd. Most recently they deprecated dockershim, and users now need to switch to containerd (since docker also uses containerd under the hood, and it doesn't make sense for the orchestration system to run a monolithic service like docker where it just need to launch the workloads)

Some reference links of k8s or PaaS build on top of k8s moving to containerd

- https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-...

- AWS Fargate: https://aws.amazon.com/blogs/containers/under-the-hood-farga...

- Azure kubernetes service (AKS): https://docs.microsoft.com/en-us/azure/aks/cluster-configura...

This driver is similar to what CRI-containerd is doing in kubernetes (if you are coming from the k8s world)

Re: Running Nomad for a Home Server

#143

Earlier quoted context omitted.

Capnrover seems like the best option. I have the same perception of Flynn. Dokku is nice but I don't really see how you could use it in production since it's limited to a single server (there are definitely some cases where that's all you need but I can't imagine you'd need a PaaS for most of them).

Maintainer of Dokku here: It isn't limited to a single system, and has a scheduler component for Kubernetes ( https://github.com/dokku/dokku-scheduler-kubernetes ) and Nomad ( https://github.com/dokku/dokku-scheduler-nomad ).

Cool! It looks like those are in beta/not very widely used though. And my impression is that I'd probably have to understand k8s/nomad pretty well to use them; really I'd like something with an experience closer to Heroku where that layer is as abstracted as possible.

Re: Running Nomad for a Home Server

#144
post #32

Earlier quoted context omitted.

Nomad already has a first-party driver for podman, doesn't that do it?

Author ( https://github.com/Roblox/nomad-driver-containerd ) here. Not really, Podman and containerd are two different technologies, although both allow you to move away from Docker for various reasons (smaller CPU, memory footprint, better security etc). If you are invested into Red Hat container stack, podman makes more sense. However containerd is more universal. K8s is already moving away from docker, and directl…

Appreciate the thoughtful reply. So it does address the immediate issue of being able to run OCI containers without the intrusive docker daemon, but not in the same way (and as you say, less standardized/universal).

Re: Running Nomad for a Home Server

#145

Earlier quoted context omitted.

As the article says, >Nomad is also a simpler piece to keep in your tech stack. Sometimes it's best to keep things simple when you don't really achieve any benefits from the complexity. Simple is better. But in this case he doesn't realize that he's stuck way up the complexity stack in a local minimum that's way more complex than most of the potential software landscape. None of that is needed to expose a webserver.…

The second sentence of the article answers your question. And if you follow the link in the third sentence, the image at the top of the README also answers your question.

If we are to take your assertion and those sentences at face value then the article title and hook is false. It is not about running a home server. It is about padding his resume and skills for providing services for pay at a corporation. It has nothing to do with running a home server. Perhaps a better title would be, "How to practice paid work (that's irrelevant at home) at home".

Re: Running Nomad for a Home Server

#146
post #144

Earlier quoted context omitted.

Author ( https://github.com/Roblox/nomad-driver-containerd ) here. Not really, Podman and containerd are two different technologies, although both allow you to move away from Docker for various reasons (smaller CPU, memory footprint, better security etc). If you are invested into Red Hat container stack, podman makes more sense. However containerd is more universal. K8s is already moving away from docker, and directl…

Appreciate the thoughtful reply. So it does address the immediate issue of being able to run OCI containers without the intrusive docker daemon, but not in the same way (and as you say, less standardized/universal).

yes, that's correct. With both the drivers (podman, containerd) you can run OCI containers without the need to run docker daemon.

IMO, or atleast when we were making that decision, a key factor that we considered: Since docker has been more ubiquitous as a technology and millions of users have already been running docker in their infrastructure (and containerd under the hood without even knowing that it exists), containerd has seen the test of time a lot more than e.g. podman.

Also to add, containerd as a system is very pluggable and flexible. You can swap out an entire subsystem and write (plug) your own with containerd. e.g. you can write your own custom snapshotter and use that if you don't want to go with the default. e.g. The firecracker-containerd project (https://github.com/firecracker-microvm/firecracker-container...) wrote their own devicemapper snapshotter. From my limited understanding of podman, I believe it's geared more towards security and making containers rootless, which was a pain point in docker initially, since everyone ran containers with root.

Re: Running Nomad for a Home Server

#147
post #144

Earlier quoted context omitted.

Appreciate the thoughtful reply. So it does address the immediate issue of being able to run OCI containers without the intrusive docker daemon, but not in the same way (and as you say, less standardized/universal).

yes, that's correct. With both the drivers (podman, containerd) you can run OCI containers without the need to run docker daemon. IMO, or atleast when we were making that decision, a key factor that we considered: Since docker has been more ubiquitous as a technology and millions of users have already been running docker in their infrastructure (and containerd under the hood without even knowing that it exists), cont…

One area, where containerd didn't had a first class support was CLI. the default containerd CLI "ctr" has a very naive implementation. The reason for that I believe is, containerd as a system was never meant to be consumed by humans, and was designed to be consumed by higher layers e.g. orchestration systems like nomad or k8s. However, with the deprecation of dockershim in k8s, and users moving to containerd, a new docker compatible CLI came out:

https://github.com/AkihiroSuda/nerdctl

If you just have containerd running on your system (with no docker daemon running), you can just install nerdctl and add

alias docker="nerdctl"

to your ~/.bashrc file.

Then you can just run any docker commands the way you used to with docker, and it will run those commands against the containerd API giving you the same CLI experience that you used to have with docker.

Re: Running Nomad for a Home Server

#148

Earlier quoted context omitted.

yes, that's correct. With both the drivers (podman, containerd) you can run OCI containers without the need to run docker daemon. IMO, or atleast when we were making that decision, a key factor that we considered: Since docker has been more ubiquitous as a technology and millions of users have already been running docker in their infrastructure (and containerd under the hood without even knowing that it exists), cont…

One area, where containerd didn't had a first class support was CLI. the default containerd CLI "ctr" has a very naive implementation. The reason for that I believe is, containerd as a system was never meant to be consumed by humans, and was designed to be consumed by higher layers e.g. orchestration systems like nomad or k8s. However, with the deprecation of dockershim in k8s, and users moving to containerd, a new d…

That's really neat, thanks for the link :)

Re: Running Nomad for a Home Server

#149

I did/do run both myself, Kubernetes and Nomad, and it was a million times easier to set up Nomad (including Consul) on bare metal than it was to set up Kubernetes. Kubernetes offers more features, but you most likely don't need them and the increase in complexity makes it a pain to maintain. I'm running a three-node cluster on Hetzner [0] for Pirsch [1] right now and haven't had any difficulties whatsoever when upgr…

Nice product by the way. I might try it later on of my upcoming projects

Re: Running Nomad for a Home Server

#150
post #118
post #91

Earlier quoted context omitted.

I recently setup Traefik 2.x to front a self-hosted Docker Registry, with automated Let's Encrypt renewals - I found the config to be really unintuitive and confusing! It feels like an awful lot of really finicky config for such a simply setup. Next time I'll try something else.

Traefik v1 is much simpler, v2 seemed to introduce so many extra layers which makes the simple stuff harder.

Caddy v2 seems to be doing something right although I don't think it comes with the same number of features out of the box. Plus it's more of http reverse proxy.
Post reply on HN