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.
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.
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...
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 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 :)
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.
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
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.
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.
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.
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.
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.