Hacker News new | ask | show | jobs
by wepower_ico 2472 days ago
I am one of these guys who is using K8S at home. The reason is a unified platform for work and home environment.
7 comments

What's the cheapest you can run a k8s cluster in the cloud? I've been looking to spin one up in AWS, but it looks remarkably expensive for running personal projects.
If you go with a provider that provides the control plane for free, which is the way Google Cloud and Digital Ocean do it (and probably many others), a single node cluster is actually a valid cluster. It won't have redundancy / High Availability which is Kubernetes' raison d'être, but it works well. If so, Kubernetes is no more expensive than non-Kubernetes. In the case of Digital Ocean, $10/month.
I‘m running at three node Kubernetes cluster for less than $10 a month using this guide: https://github.com/hobby-kube/guide

Disclaimer: I‘m the author.

Damn, wish I found this before I spent days stumbling through my first Kubernetes set up.
Ignorant HA requirements, will this work fine with a single beefy node in home network or would I be better off running multiple vms on that single server which then run separate Kubernetes nodes?
You can get a single-node k8s cluster running super easily with [Minikube](https://github.com/kubernetes/minikube). The more recent Docker for windows/mac actually comes with a kubernetes distro that piggybacks off the docker vm.
If we're talking managed, DigitalOcean maybe? (The master server part is free, you pay for compute etc of the nodes)

You could possibly do it cheaper on AWS with RI discounts, but you'd have to setup the cluster yourself to avoid the ~$140/mo fee.

Consider just running Minikube on your laptop. It’s pretty realistic and won’t cost you a penny. Except maybe in electricity, it seems to consume an enormous wattage just to exist...
minikube --vm-driver=none consumes a lot less resources, and k3s even fewer.
K3s is fantastic. Lately I've been using K3d (which is the same thing, just in a docker container - much like Kind) It's super easy to spin up a cluster, and spin it back down with nothing really to clean up.
I’m using Hyper-V at the moment, I’ll check out your suggestions - thanks
I’m building a startup that provides hosted, shared Kubernetes clusters starting for 0$/month. https://kubesail.com - I agree with everyone on this thread that using k8s for a blog is like building your own house from scratch - but the analogy breaks down when everything underneath the Kube api is managed and setup for you - at that point is just becomes a standard, open cloud API :)
3 node k3s cluster on hetzner cloud for about 10€/month
And easily provisioned with https://github.com/xetys/hetzner-kube (not affiliated, but I tried it out once and found the deployment to work smoothly)
My cluster is at $30 a month, which is slightly more than my dokku server; but I get so much more out of it that I think it's worth it.
I'm not very familiar with kubernetes, what do you get out of it that you don't with dokku? I really like dokku and use it on my personal server for all my half-baked personal projects.
Mostly automatic DNS management and it being more easy to use more than one machine for things.
If you just/first want to practice actual, multi-node k8s on your local Mac (or Windows), I've just completed this: https://github.com/youurayy/hyperctl
Cheapest would probably be somewhere around 10$. Three VPS with 4GB ram somewhere.

Im running mine with three VPS and 8GB ram. Just for personal services and learning/fucking around purposes.

I run a very small GKE cluster with two 1vCPU preemptible nodes. Costs me a few bucks per month.
I was thinking of doing the same thing. How much in average do you pay per month?
I thought GKE the control nodes are free but but on EKS you pay heaps for them.
Same here, I run K8s both locally and on GKE for a project. My GKE cluster is just 2 nodes that have 2vCPU & 3.75GB RAM each. Performance is great and it has saved me an insane amount of time. I have also created an open source project that does one thing - updates your deployments :) https://keel.sh. Previously I tried several different hosting options but nothing is easier/more convenient than k8s for me.
Thanks a lot ! Keel looks exactly like something I would need!
How do you expose your services via an ingress when it needs to be behind a nat (via your home router/gateway)? Thanks!
Hi, my shameless plug (I am the creator of webhookrelay): https://webhookrelay.com/v1/guide/ingress-controller, using it both for services that are running in GKE and on minikube locally. It's cheaper than allocating a LB IP for backing services that don't get much traffic like Grafana and similar things.
One possibility (especially for "home Kubernetes" case) is not exposing the services to the outside world at all and using ZeroTier to access them https://www.zerotier.com/ It's L2 mesh VPN, and I believe you can even use MetalLB with it with some minor trickery. You can, of course, set up WireGuard or OpenVPN for yourself, too, but from my experience zt is the simplest for accessing the boxes behind NAT as you don't even need to set up any servers with real IPs.
DNAT. You map one/more ports from your router exposed on internet to ip:port of the local app.

However, http/https ports are already used on routers to offer an admin web GUI. It’s technically possible to circumvent this with some ad-hoc firewall rules, but it depends if the router admin UI let’s you do that.

> However, http/https ports are already used on routers to offer an admin web GUI.

not on the wan side I'd hope

Exactly, they aren’t exposed outside. That’s why you can “potentially” add rules to route request from the outside to an internal host:port, even 80/143. On the LAN you would still able to connect to router admin.
Using NodePort and Traefik ingress controller.
thanks!
You don't necessarily need an ingress, NodePort may be sufficient to expose a service.
Assuming you are running on physical hardware how are you managing storage? I've tried Rook but it seems somewhat buggy and overkill for my requirements (rsync would do).
I'm using K8S (with rancher's k3s) at home too ! My main reason is portability. When I need to unplug one of the Raspberries or move all services to somewhere else, I only need to change the storage layer.
So you're running bare metal k8s at home? What do you use for storage? That's my biggest question in how to move frok minikube at home to a true cluster.
Raid 1, 4tb, NAS with NFS :)
Thanks! That should be enough to get me going in the right direction, hopefully to a working setup :)
Do youbuse minikube at home? If it's a real cluster, I'd like to ask what you do for storage. I currently run minkube but would love to move to a real cluster setup.
Docker for Mac can run a k8s instance for you if you want.