Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

But swarm only has overlay network iirc?

Swarm is great to get simple orchestration going, but it doesn't really do the same thing.

With k8s you can configure multi-point routing, storage backends and load balancing among other things.

With swarm, you get ... Overlay network (which is shit if you actually need to really scale) and 'scaling', which starts n containers of the same service.

Swarm feels more like an mvp which actually works even for small teams. K8s is more like a behemoth which only dedicated personal can fully tame with a silly amount of features most people don't need.

We've used both at my current job for toy projects (self hosted). Never in production however.

And I'm a personal user of gcp - which works wonderfully .. albeit more expensive than simple root servers




Possibly edgy opinion:

Load balancing should be a solved problem already. Swarm and Kubernetes should be using dead simple off-the-shelf software for ingress and load balancing. Any competitor should be able to use the same solutions. To put it another way, this shouldn't be a differentiator.

The problem is that the functionality in tools like nginx are still tied to static network architectures that evolve slowly, and don't take advantage of things like diurnal variability in workloads.


Kubernetes does use dead simple off-the-shelf software for ingress and load balancing. That software though, unfortunately, has a lot of knobs, and what "Ingress" and "Service" resources do is make sure those knobs are turned to the right settings.

The nginx ingress controller for example, under the hood, just generates and applies a big ol' nginx config! You can extract it and view it yourself, or extend it with a Lua script if you want to be fancy and do some FFI inline with processing the request, etc.


> The nginx ingress controller for example, under the hood, just generates and applies a big ol' nginx config!

I learned the hard way that GKE, in using GCP's load balancers don't support the same syntax for Ingress patterns as when you use an nginx Ingress. Definitely read the documentation thoroughly!


> That software though, unfortunately, has a lot of knobs

Lots of people have different definitions of 'easy' which is why I didn't say 'easy'. But how did you get this far off the rails with 'dead simple'?


Same with swarm, it's just using IPVS at L4. Does not provided anything at L7, it's up to you to provide such a service on the cluster.


That's the opposite of dead simple and k8s tries hard to make things more complex than needed.


Is it hard to integrate a (HA) hardware load-balancer in front instead?


The easy way to do this is with NodePorts, wherein you configure your LB with all the nodes in your cluster being app servers on a certain port for a certain app. However you will lose some performance as there's some iptables magic under the hood.

Beyond that there's a sea of options for more native integrations that will depend on whether your LB vendor has an K8s integration, how friendly your networking team is, and how much code you're willing to write.


for baremetal you can use metallb or kube-router if you have bgp infra. no need for hardware ha lb


Swarm comes with overlay networking, you can install network plugins for whatever you need.


You can't switch networking for Swarm Mode


Yes you can. The plugin just needs to be swarm capable.

https://docs.docker.com/engine/extend/plugins_network/




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: