4 minutes
Kubernetes Providers Spring 2021
Intro
In my last goals post I called out a need to work on my lab and open-source projects. While I am a big proponent of building out a full featured home lab I also believe that cloud services can offer a lot of benefit by turning the initial capitol cost (in the form of purchasing equipment) and operational expenses (internet, power, cooling) into purely operational expenses (monthly bill) while also increasing reliability and accessibility - after all, a cloud provider’s data center should be more robust than my basement.
With that in mind I’ve decided to at least start the conversation around my home lab as a conversation around kubernetes as a service providers.
Why Kubernetes?
For anyone not familiar:
Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management
Kubernetes, hereby referred to as k8s, may seem like an odd choice (or a heavy handed choice by some) for a platform to run a home lab and do development and testing with but as an open standard I think its great for providing a single ‘platform’ that I can utilize with k8s providers today and then migrate to my in-home lab when I eventually build it out here. Simply by running the k8s cluster locally I can keep a bulk of my code/services that I use on any of the possible cloud-providers that I choose.
Future posts will chronicle and highlight specific services that I deploy to my cluster but as a first step I want to investigate which providers are currently available and choose one to utilize for the remainder of this experiment/project.
So many options….
There are a number of cloud providers providing managed k8s services. While an exhaustive review of all of them isn’t really feasible I did want to highlight some of the larger players.
Google Kubernetes Engine (GKE)
Kubernetes managed by the creator of Kubernetes
Pros:
- Managed Kubernetes by Google (the creator of Kubernetes)
- Provider with a robust ecosystem of products
- $300 in free credits when you start (good for first 90 days)
Cons:
- $0.10/hr management fee for cluster ($72/month before you even factor in resources)
- If you use the simplest single-node - single-cluster the ‘free tier’ credits will cover the $72 but it is something that you may have to deal with eventually.
- Resources relatively cheap at ~$35/month for a single node cluster
- Lowest cost is still >$100/month ($35/month if in ‘free tier’ for cluster management)
AWS Elastic Kubernetes Services (EKS)
Kubernetes managed by the creator of Kubernetes
Pros:
- Provider with a robust ecosystem of products
Cons:
- $0.10/hr management fee for cluster ($72/month before you even factor in resources)
- Have to pay for management and resources separately leading to fairly high ’low end’ costs.
Azure Kubernetes Service (AKS)
Mangaged by Microsoft in Azure Cloud.
Pros:
- No cluster management fee
- Pay only for resources utilized
- Provider with a robust ecosystem of products
Cons:
- Not the cheapest. The lowest I could spec at the time of writing would cost $36.21 per month for a single B2S instance as the only node in the cluster.
IBM Cloud Kubernetes Services
Mangaged by IBM in IBM Cloud.
Pros:
- No cluster management fee
- Pay only for resources
Cons:
- Not the cheapest. The lowest I could spec at the time of writing would cost $80.31 per month for a single node cluster with the lowest spec’d worker node.
DigitalOcean Managed K8S
Affordable ‘developer-friendly’ managed Kubernetes services.
Pros:
- No cluster management fee.
- Cheap - Able to get started with a cluster for $10/month/node. Create a single-node cluster and scale later for $10 (good place to experiment)
- Easy to get started
Cons:
- Not quite as mature/robust as some of the bigger players (AWS/Azure/GCP)
Linode Managed K8S
Affordable managed Kubernetes from a long-time provider
Pros:
- No cluster management fee.
- Cheap - Able to get started with a cluster for $10/month/node. Create a single-node cluster and scale later for $10 (good place to experiment)
- Easy to get started
Cons:
- Not quite as mature/robust as some of the bigger players (AWS/Azure/GCP)
Vultr
An affordable VPS provider. They do not have a managed k8s solution currently but are actively developing one. This is a provider to check again in the future.
And the Winner is…
Ok so everyone has different criteria by which to judge this and choose their winner. That being said there are really tiers of options from the above:
If you want cheap…
Then DigitalOcean or Linode is the choice for you (and likely Vultr later). Between DigitalOcean and Linode I’d personally choose DigitalOcean simply because I’ve had good experiences with them in the past.
If money isn’t tight….
Then I’d go with Azure or GCP. Both are stellar cloud providers with reasonable pricing
If the account is going on the ‘corporate’ card…
AWS and IBM Cloud might be for you.
For my personal kubernetes work I’m going to be sticking with DigitalOcean.
In future posts I’ll go over some of the high-level goals for my deployment, identify and deploy services, and start getting my ’lab’ created.
Happy Hacking,
-Sy14r