Skip to content

What Is Kubernetes?


The initial question should actually be: Why Kubernetes? instead. So instead of starting with the wrong What is question, let’s start with the Why. This will clear both the concept and the reason behind why kubernetes exist.

Why Kubernetes?

Containers are great. They are lightweight, they are more secure. But when it comes to pushing them onto the production, the first question that arises is:

Are containers production ready?

Take a simple example of web server. You write your html, css, js and you are ready to deploy it. In fact, you have been writing, testing and previewing it since the very first index.html of your site using nginx container. Everything works fine till not.

While developing or sharing your site with few users, you host in your machine and all your teammates or users could see it. But, once you are going to expose it to the world so that the world uses it, you have to answer few basic questions:

  1. What if container goes down — does anyone even notice?
  2. If someone notices — how healing is done?
  3. What if I want more containers to scale — does container scale on its own?
  4. Even if it scale — who will balance the load?
  5. What if ever the host running container itself goes down — do I have backup?
  6. What about network level security, firewalls, external services, blah, blah, blah?

Try answering these basics questions with your favorite containerization platform and you won’t find any satisfying solution with just the container platform itself.

Companies like Netflix or Amazon won’t say: Containers are great, let’s replace expensive VMs with Containers without answers at least of above basic questions. Someone has to answer these questions, someone needs to govern the container service to make it production ready — kubernetes does that. That’s why you would often hear kubernetes is a container orchestrator. That’s right but how does kubernetes orchestrates continers?

To keep it simple, kubernetes can answer all of the above basic questions. Let’s go one by one:

  1. There is some service or component in kubernetes (kubelet) which ensures containers are running. If any containers fails — it reports.
  2. After reporting, someone (component API Server) is there to act on the basis of that information so that container can be redeployed or healed.
  3. You can think of pods as corresponding to containers in the world of kubernetes for simplicity. And yes, it’s just a matter of one config change to scale up or down.
  4. Node in kubernetes has proxy (kube-proxy) for networking capabilities. Kubernetes uses OS level of forwading mechanism or different mechanism to forward traffic which makes control plane (the decision maker) possible to load balance.
  5. Yes, kubernetes itself it cluster based architecture (more than one nodes working together). Even if one goes down, another is still there to serve.
  6. Kubernetes supports firewalls, integration, etc. either by it’s own or with plugins, etc. Furthermore, kubernetes is backed by very strong commnuity who are working to enhance features daily.

What is Kubernetes or K8s?

Now that you know the why part, answering what is as simple as:

Kubernetes (often abbreviated as K8s) is an open-source platform that automates how you run, scale, and manage computer programs packed inside containers ensuring high availability, auto scaling, auto healing and other features requried for production. This is what makes kubernetes a true container orchestrator.

Why Kubernetes as K8s?

The word “kubernetes” comes from an ancient Greek Root — “Kubernētēs” which means pilot or captain of a ship — the letter K, followed by 8 letters (u-b-e-r-n-e-t-e), followed by s.

Last updated on