If you google “Kubernetes”, you will get the result “Kubernetes is an open-source container orchestration system for automating application deployment, scaling, and management.”
In other words, it’s a non-answered answer that full of big scary words.
So on a more serious note, why should I use Kubernetes?
I’m glad you asked.
To provide some context, any sysadmin who has been responsible for the uptime of a web server would know that as you start to have a higher user count, the impact of downtime exacerbates.
First, you just want to make your site/ app “scalable”. This eventually turns into a big project to create an environment that allows you to perform such task. If you’re lucky enough, it would be in the deployment pipeline. Sometimes, it will be just an “availability set” or “restore from the latest backup”, oh well!
Whether you use Virtual Machine (VM)/ VPS/ Baremetal server, when you factor in a restore time objective, these systems take minutes to be ready to serve content. In a world where your clients complain about load times over a few seconds, it feels like snail mail all over again.
What is Docker?
Docker explanation for beginner: a system that takes the idea of hosting your content and use it as its own hat.
Do you have a strong hypervisor that runs multiple virtualization instances? Each of those VMs has an operating system which add more overhead cost. When you get in the double and triple digits of VMs, that accumulates.
After you install Docker, you will have the host running as the only operating system. Each “VM” is now a container, an isolated environment that uses the power of your host operating system to serve content.
Each container will need only the lists of necessary ingredients for your content: Apache, nginx, PHP, Microsoft SQL Server…
While Docker is fantastic for a handful of deployments, you need something with more power and sensibility for large deployments.
Here comes Kubernetes
Kubernetes adds a management layer to Docker.
Now you can manage multiple hosts in a cluster and extend your Docker containers with some pretty neat stuff:
- You can now take your website and scale it up and down in seconds.
- Did a weird bug make your content not load? Kill the container and spin up a new one in its place.
- Kubernetes will manage load balancing and moving the traffic to the other containers in your cluster automatically.
- And many more other reasons why it’s awesome.
Do you want to perform patch management on each server, wait forever to boot and restore (because you’re too cheap to pay for SSD storage), kill a baby dragon every time you need to backup?
Or do you want to use Kubernetes and enjoy a cup of coffee while using it?
Kubernetes can work on many cloud providers such as AWS, Azure, CloudStack, Openstack… You can check out the full list and how-to for each provider here: https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/
Microsoft Windows Server 2019 is the only Windows operating system supported, enabling Kubernetes Node on Windows (including kubelet, container runtime, and kube-proxy), so if you choose the latter, you can get your Windows Server 2019 here: