(Cloud computing platforms with auto-scaling functionality)
We use both Azure and AWS at work. Azure is less expensive. But it’s also like comparing a corner 7-11 to a city-sized shopping mall. AWS is freaking huge and they add new services every week it seems. It’s kind of overwhelming.
There’s also Google Cloud and IBM and Oracle but they all suck for the same reasons AWS and Azure suck.
You might want to look into Alibaba Cloud, Digital Ocean, and/or Linode/Akamai.
We use digital ocean for a pre-production k8s environment, as well as other stuff, no complaints. Terraform works great with it. My only issue is that the worker nodes IPs change during/after an update, so we have to update our firewalls a few times, while the update is running, and after it’s over.
For the firewall issue, could you keep the cluster on its own vpc, and then use load balancer annotations to do per-service firewalls?
https://docs.digitalocean.com/products/kubernetes/how-to/configure-load-balancers/#firewall-rules
❤️🌊
If your scale is right, both Hetzner and Digital Ocean support the Kubernetes autoscaler.
https://github.com/kube-hetzner/terraform-hcloud-kube-hetzner
https://docs.digitalocean.com/products/kubernetes/how-to/autoscale/
Digital Ocean is super easy for beginners, Hetzner is a bit more technical but like half the cost.
This only outweighs the per-node overhead though if you’re scaling up/down entire 4vcpu/8gib nodes and/or running multiple applications that can borrow cpu/ram from each other.
If you’re small scale, microVMs like Lambda or fly.io are the only way to go for meaningful scaling under 4vcpu/8gib of daily variation. Also, at that scale, you can ask yourself if you really need autoscaling, since you can get servers that big from Hetzner for like $20/month. Simple static scaling is better at that scale unless you have more dev time than money.
Interesting, I already used Hetzner for my current VPS. I’ll look into the stuff you listed, thanks!
Go for it!
Hetzner currently doesn’t have a managed kubernetes option, so you have to set it up manually with Terraform, but there are a few terraform modules out there that have everything you need. The rumor is that they are working on a managed kubernetes offering, so that will be something simpler in the future.
Their api is compatible with all the Kubernetes automation, so all the autoscaling stuff is all automatic once you have it set up, and bullet-proof. Just use the k8s HPA to start and stop new containers based on cpu, or prometheus metrics if youre feeling fancy, and then kubernetes node autoscaler will create and delete nodes automatically for you based on your containers’ cpu/ram reservations.
Let me know if you need documentation links for something.
I second digital ocean. I’m not a beginner, but I really appreciate their simplicity. They also have a cli option that can pretty much do everything the UI can do.
Their Terraform support is top notch too, better than AWS.
Not sure if it’s “best”, but despite my hatred for Microsoft, I actually like azure. I’ve also self-hosted via Hetzner in the past, but not sure if that meets your needs.