Hosting your own Kubernetes cluster is an excellent way to grow your cluster management skills. I have hosted this site in my own cluster for more than a year now. In that time I have migrated my cluster from GCE, Linode, and now DigitalOcean. Of course, hosting your own cluster does cost money. The big players like AWS and GCE are likely to be too expensive for most hobbyist. On the other hand, less expensive hosting providers have fewer features. In this article we will look at what budget hosting providers DigitalOcean and Linode have to offer to budget conscious cluster admins.
Linode offers ultra cheap, no frills virtual machines starting at $5/month and up. Linode also offers load balancers in the form of NodeBalancers and DNS services. Linode instances are priced by tiers that offer increasing amounts of ram, cpu, and disk space for each tier. The only way to get additional disk space is to get a larger instance. TLS certificates and block storage are not available for Linode.
Digital ocean also offers cheap hosting of virtual machines starting at $5/month. However, there are some additional perks. First and foremost, DigitalOcean offers block storage. That means that you can attach additional volumes to your instances. There is no need to pay for extra ram and cpu that you don’t need in order to get more memory. Additionally, Linode offers certificates through letsencrypt that can be installed in DigitalOcean load balancers and are automatically renewed. Unfortunately, load balancers provisioned via kubernetes are not eligible for certificate automation at this time.
Like AWS EKS, DigitalOcean offers a managed control plane. Unlike AWS, you don’t pay for the kubernetes master node. Instead, you only pay for the underlying instances, load balancers, and volumes. Additionally, DigitalOcean offers a clean web interface for deploying new kubernetes clusters, making deployment a breeze.
Linode has no dedicated kubernetes offering. However, there is kube-linode, a shell script which automatically provisions your instances and installs kubernetes for you. Although kube-linode is a great tool, I found that I had to tweak the scripts in order to get my deployment to work. When I used it in April of 2018, it took me about a day and a half to successfully deploy my cluster. On the flip side, I had my DigitalOcean cluster up and running in under an hour. Because Linode does not have an official kubernetes offering, you will need to host your own control plane and pay for it.
Performance and Stability
I used Linode for around 9 months and never encountered any major stability issues. Performance was more than adequate for my needs, but my workload was small. DigitalOcean is TBA, but in the week that I have used it, I have been very satisfied.
DigitalOcean wins hands down for budget cluster hosting. Block storage is an absolute must for building flexible clusters without breaking the bank. Combine that with the price of the control plane at no additional cost and it is a no brainer. If you are thinking of setting up your own cluster and would like try it without spending any money, you can get $100 to spend over 60 days by following this link.