Hacker News new | ask | show | jobs
by ekidd 811 days ago
Your first full-time sysadmin is an expensive hire. So is your first DBA. And even if your database backups are working now, there's a good chance they'll silently break in the next several years.

The simplest thing you could do is to build a single-container application, and deploy it a Heroku-like system with a fully managed database. If this actually works for your use case, then definitely avoid Kubernetes.

But eventually you'll reach a point where you need to run a dozen different things, spread out across a bunch of servers. You'll need cron jobs and Grafana and maybe some centralized way to manage secrets. You'll need a bunch of other things. At this point, a managed Kuberentes cluster is no worse than any other option. It's lighter weight than 50 pages of Terraform. You won't need to worry about how to get customized init scripts into an autoscaling group.

The price is that you'll need to read an O'Reily book, you'll need to write a moderate amount of YAML, and you'll need to pay attention to the signs reading Here There Be Dragons.

Kuberentes isn't the only way to tackle problems at this scale. But I've used Terraform and ECS and Chef and even a custom RPM package repo. And none of these approaches were signficantly simpler than Kubernetes once you deployed a full, working system for a medium-sized organization.

1 comments

> At this point, a managed Kuberentes cluster is no worse than any other option

Except in terms of pricing...?

K3s adds minor overhead to my single node $8/mo vps.

Edit: no, not managed. Quite easy to get started with though.

Edit2: took ~440MB of ram & 3% CPU (most of the CPU is the local storage provisioner, weirdly?). Why? Because it was much easier than continuing to maintain and run the handcraft Ansible scripts I've done over the years, and let me easily manage DNS, certs, metrics, two dbs, and its easier to reuse these on my other infra than any other option.

I just ran the k3s install script on a vm, and then ran 'systemctl status k3s', and apparently it's using 1.4GB of memory (I haven't started any pods yet). I understand why you might opt for Kubernetes in a multi node cluster, but what does this provide in a single node cluster that you can't achieve with Docker Compose (or Podman Compose)? Not trying to be snarky, I'm legitimately curious.

EDIT: After playing around with this, it appears to scale its memory usage relative to the machine's total available memory. If you run it on a vm with 1GB or less of memory it'll use up roughly half the machine's memory.

Is this "managed Kubernetes" then?