
Is Kubernetes open source, and is it free?
May 2, 2023
Aron Wagner
CEO & Co-Founder
Yes. Kubernetes is open source under the Apache License 2.0, and nobody charges for the software: you can download it, change it and run it, commercially too. Free to use isn't free to run, though. A cluster needs machines for its control plane and its workers, and someone has to keep the control plane healthy and upgraded. That's where the money goes.
Is Kubernetes open source?
The code lives in the kubernetes/kubernetes repository on GitHub under that license, so you can run it in production or ship it inside a product without asking anyone.
The project describes itself as "a portable, extensible, open source platform for managing containerized workloads and services". It schedules containers across a cluster of machines, restarts them when they fail, and rolls out new versions. It isn't a platform as a service, and its own docs say so: it "does not build your application", and it doesn't come with databases, caches or storage systems built in. You bring those, or your provider does.
Who made Kubernetes, and who owns it now?
Google wrote it and open-sourced it in 2014, drawing on "over 15 years of Google's experience running production workloads at scale". When version 1.0 shipped on July 21, 2015, Google announced it would donate the project to a new foundation, the Cloud Native Computing Foundation, part of the Linux Foundation. The CNCF has run it since, and Kubernetes graduated there in March 2018.
No single company owns it today. Plenty of companies sell managed versions and services around it, but the code belongs to the project. And if you've wondered about "K8s": the 8 stands for the eight letters between the K and the s.
Is Kubernetes free?
The software is. Running it isn't, and you pay in two things: machines and hours.
Machines. A cluster has a control plane (the API server, the scheduler, and etcd, which stores the cluster's state) and worker nodes that run your containers. The kubeadm install guide asks for 2 CPUs and 2 GB of RAM on a control plane machine. Those machines cost the same whether they run Kubernetes or anything else.
Hours. The project patches only the three newest minor versions (1.37, 1.36 and 1.35 today), each for about 14 months. Run it yourself and somebody on your team upgrades the control plane before that window closes, backs up etcd, and fixes it when it breaks. That's the cost people forget.
Here's the same small cluster priced both ways on our rate card.
The workers are $94.35 each in both setups. The $43.99 difference is the control plane machine, which on our managed Kubernetes is free. The other difference doesn't show up on the invoice: managed, nobody on your team builds the control plane or looks after etcd. Unless running clusters is your job, that's the part to hand off. And neither bill has a line for outbound traffic: we don't charge egress.
How many control plane machines does production need?
Three, if you want it highly available. One control plane machine is a single point of failure: the Kubernetes docs call that setup "not highly available", and the kubeadm docs say to run a minimum of three control plane nodes for a highly available cluster. Run it yourself and that's three machines to build, patch and back up.
On our managed Kubernetes, each control node past the free first one bills at the worker size, and we build and run every one of them.
Can you run Kubernetes locally for free?
Yes. kind and minikube both run a cluster on your own computer, and kind does it with Docker containers as the nodes. They're good for learning and for testing manifests. For your own servers, kubeadm sets up a cluster on machines you already have. All of it is free, and so is kubectl, the command-line tool you use with every cluster.
Is managed Kubernetes still open source Kubernetes?
It is if the vendor sticks to the standard API. The CNCF runs a conformance program that "ensures that every vendor's version of Kubernetes supports the required APIs", and it lists over 90 certified offerings. The test that matters to you: your manifests apply with plain kubectl, and they still apply after you move. Our managed Kubernetes runs the standard Kubernetes API, so your manifests work on any Kubernetes cluster.
How do you run Kubernetes on American Cloud?
Create a managed Kubernetes cluster, download its kubeconfig and point kubectl at it (getting started). We provision the control and worker nodes; you pick the Kubernetes version, and upgrading is one action from the cluster's Manage menu when you're ready. Nodes bill by the hour, and worker nodes can autoscale between a minimum and maximum you set.
If you're deciding whether you need a cluster at all, Kubernetes vs Docker walks through one server against a cluster. What EKS, GKE and AKS charge for a five-node production cluster is in our Kubernetes hosting cost comparison, and the pricing calculator sizes your own.