December 10, 2020|Chris Tozzi

How to Measure – and Minimize – Your Kubernetes Total Cost of Ownership

kubernetes tco1

Kubernetes may be free to download and run, but it’s hardly free of cost to own. Like other major open source platforms that are “free” only in a simplistic sense, Kubernetes will almost certainly cost you money to deploy and operate.

How much money depends on a variety of factors, such as how you deploy Kubernetes and which tools and processes you use to manage it. For some organizations, Kubernetes is almost free of cost. For others, it may well end up incurring much more in total expenses than a proprietary software platform.

To help you assess how much Kubernetes will cost your team, this article will explain which factors contribute to Kubernetes expenses and how to determine your fully loaded costs for Kubernetes.

Kubernetes Cost Factors

To calculate the total cost of a Kubernetes installation, you have to weigh each of the factors that contribute to Kubernetes costs. Not all of them apply to every situation, but they are all variables to consider when designing a cost-efficient Kubernetes strategy.

Kubernetes Distribution Cost

Unlike, say, Linux, there is really no such thing as a totally free, community-supported Kubernetes distribution. (OKD, a community distribution that is sponsored by Red Hat, may be the exception.) Instead, there are a variety of commercial Kubernetes distributions. Most of them offer free tiers for small-scale clusters, but they charge fees for production-grade installations and/or for professional support services.

Thus, the first cost factor to consider for Kubernetes is licensing fees associated with the distribution you use. Unless you plan to run a cluster of a dozen nodes or fewer, expect to pay for your distribution.

Kubernetes Node Cost

Kubernetes needs servers to run on. It turns those servers into nodes and uses them to build your clusters.

Your nodes could be on your own on-premises servers, or they could be on cloud-based servers. Either way, you will be paying for them.

Obviously, the cost structures associated with your Kubernetes infrastructure will vary depending on what kind of servers you use. For on-premises hardware, you have a large upfront acquisition cost, and then relatively small ongoing maintenance costs. For cloud servers, there is no upfront capital expense, but you will pay ongoing fees on a monthly basis.

Data Transit Costs

If you run Kubernetes in the cloud using virtual machines that you manage yourself, you will (in most cases) have to pay not only for the virtual servers that power your nodes, but also the networking fees associated with data egress.

In general, these costs will be relatively low for clusters that keep most of their data within the same cloud. If you use Kubernetes to host applications that send a lot of data out of the cloud, however, those egress fees will add up.

Storage Costs

Likewise, you need to pay for storage to host your Kubernetes data. If you run only stateless apps, your data storage needs and costs will be small. But for apps that ingest or produce many gigabytes of data, you'll need to either pay for your own on-premises storage media to host it all, or host it in a cloud storage service.

You probably want to be backing up your Kubernetes data, too, which can easily double or triple your overall storage costs because it requires you to keep multiple copies of the data.

Staff Costs

Your team has to spend time maintaining your Kubernetes cluster. How much time they spend will vary depending on how much maintenance and management support your Kubernetes distribution offers. Some distributions, like Canonical Kubernetes or OpenShift Dedicated, offer extensive, fully managed Kubernetes services. With others, like basic OpenShift, the bulk of the maintenance burden falls on you.

You can also use a third-party Kubernetes management service (like Platform9’s) to automate much of the management workflow. But your engineers will still need to be involved in management. There is no such thing as a totally hands-off Kubernetes experience.

Thus, the expenses associated with staff time to manage Kubernetes can vary significantly, but they will always exist.

Application Deployment Costs

The faster you can deploy applications to your cluster, the more value you will get out of Kubernetes, and the more cost-effective your Kubernetes strategy will be. For that reason, it’s worth thinking about what your deployment process looks like, how manual it is, and how many releases you can handle per day or per week. Although this is a somewhat intangible cost, an application deployment pipeline that can manage only one deployment per week will cost you much more per deployment than one that deploys once or more per day.

Conclusion

Kubernetes is free only if your servers, networks, storage solutions, and employees all do their jobs free of charge – which they probably don’t. That’s why, before committing to a Kubernetes strategy, it’s important to evaluate the various factors that impact Kubernetes cost and also ensure that the approach you take minimizes your expenses and will achieve the performance you require from your clusters.

Volterra can help. By providing an app and infra management platform for monitoring any and all Kubernetes clusters, no matter which type of infrastructure you use to host them (whether it be single cloud, multi-cloud, or on-premises), Volterra removes much of the guesswork from planning and managing Kubernetes. Volterra won’t make your Kubernetes clusters totally free – you’ll still be paying for infrastructure, licenses, and staff time – but it will reduce the amount of effort required to deploy and manage Kubernetes while increasing the pace of application deployment. That adds up to lower total Kubernetes cost and greater overall value.