Dear friend, you have built a Kubernetes (2024)

· cloud · Source ↗

TLDR

  • Avoiding Kubernetes by chaining deploy.sh, Docker Compose, Tailscale, Ansible, and a custom Docker API shim produces Kubernetes anyway.

Key Takeaways

  • The canonical escape route – deploy.sh – grows to cover rolling updates, rollbacks, multi-server parameterization, and firewall rules before anyone notices.
  • Docker Compose solves config format standardization but leaves deployment, scaling, and rollbacks to you; the gap fills itself with more shell.
  • Tailscale solves the overlay network and service discovery problem, but undocumented sysctl edits and iptables rules still live in one person’s head.
  • Ansible converts the VM to immutable, version-controlled infrastructure – which is exactly what Kubernetes node management does.
  • Mounting the Docker socket for programmatic container spawning is a known privilege-escalation vector; the fix is a bespoke API shim, i.e. a kubelet.

Hacker News Comment Review

  • Commenters split on the core claim: many agree the accidental-Kubernetes pattern is real, but several argue the result is an orchestrator you understand end-to-end, which has distinct operational advantages over a black-box K8s cluster.
  • A persistent counter-thread holds that Kubernetes is not inevitable – Docker Swarm, Kamal, and single-node Compose cover the vast majority of real workloads, and K8s is only well-suited to dynamically scaling SaaS at cloud scale.
  • Even K8s adopters note the abstraction leaks: you still end up with a deploy.sh that seds in the image tag, then Helm, then Helm values overrides – the configuration complexity shifts upward rather than disappearing.

Notable Comments

  • @drdaeman: “They have built an orchestrator, not Kubernetes” – knowing every bolt of your own system is a real operational advantage, especially when debugging at 2am.
  • @et1337: K8s adoption leads immediately to Helm, then Helm values layering – “my dear friend you have built a Helm.”
  • @bionsystem: Pushback with receipts – a 10k-LoC Ansible repo that scales nodes from one inventory line and deploys everything from one command, no K8s required.

Original | Discuss on HN