When you want to install an open-source application, it can be tempting to take on the task of installing it from scratch. It allows for more flexibility, teaches you new things on the way, and gives you the opportunity to customize and secure your application at your leisure.
This might be interesting in many cases, but when building an application to scale it on Kubernetes, it can end up being a more expensive and riskier choice than anticipated.
The hidden cost of self-installing and self-hosting a Kubernetes infrastructure
To install your own Kubernetes infrastructure, you will need a master - the instance that orchestrates your cluster. You could use one of your servers as an instance and as a master to spare your resources. But to build a resilient infrastructure, you will need two or even three masters to ensure constant availability. Those extra resources come at a cost. If you have two instances that you want to super-secure, you will need to pay for five.
Cloud providers generally provide the master free of charge, as they are able to optimize their resources. For example, Kapsule’s control plane is free. The only thing you will need to pay for are the resources and instances you will launch.
Installation & maintenance time
Kubernetes’ many advantages can help grow a scalable and flexible infrastructure, including:
- Auto-scaling - to automatically add nodes when needed... and to remove them easily and quickly when you do not need them anymore
- Auto-healing: to spawn a new instance or a new node when it does not respond anymore
When self-installing Kubernetes, you will need to configure it by hand, which means a lot of iterations to ensure that everything is created, deleted, verified, reattached, and spawned correctly. Managed Kubernetes exposed all the logic and rules that Kubernetes makes available for developers, on an easy-to-use interface, with best-practices as the default setting so you can start quickly and customize it to your liking.
To install Kapsule, our managed Kubernetes, all you have to do is click on a button, and that's it!
To configure their first Kubernetes server, even an experienced and skilled developer would need at least a full four weeks of work to recreate the default managed Kubernetes offer.
On average, it takes us 80 seconds only to deploy the control plane of a Kubernetes.
At some point, you will also need to upgrade your Kubernetes. Managing the rolling updates to make sure at least some nodes are always running to keep your infrastructure available. A version upgrade might also change the format of the configuration files.
This is neither the most resilient, nor the quickest way to do it.
The same way you would not install yourself or self-host every single tool you use for your company, from email services to product management tools, you would not self-install and self-host Kubernetes.
The learning experience you gain from starting from scratch might be interesting for a personal project, but once you will start, you will quickly realize that there are no business cases for self-mounted Kubernetes. You will also find that for a scaling application infrastructure, while a managed Kubernetes will help, you will still learn a lot from researching and implementing some of the amazing features of Kubernetes.
If you are interested in K8s, you might want to join Scaleway's Slack Community. Our #K8S channel is dedicated to exchanges about Kubernetes, and you can be sure to find answers by asking our experts or our community.