Image by Tatyana Kazakova from Pixabay

What is so special about Kubernetes?

Karthik Subbarao

--

Have you ever wondered, what is the role of the person who stands in front of a bunch of musicians and seems to somehow instruct them to play music by swinging his hands? This person is called an Orchestrator. An Orchestra with an ensemble of musicians is brought to life by this moderator who (let’s say) orchestrates the music.

Kubernetes is similar. It orchestrates the containers. If we consider each musician as a container. An application with a bunch of containers is made to work by Kubernetes.

Distributed software applications can be designed to run on an on-premise cluster or on cloud. These applications usually have multiple components that needs to work together. It is a common practice these days to package these components into one or more containers. Although it is easier to deploy these containers, it is quite a challenge to set up a working system that takes care of the following:

  • The containers can communicate with each other.
  • A container can start/stop another container.
  • A container starts again if it crashes.
  • A container is started in another node when the node it is running on crashes.
  • Run multiple replicas of the same container.
  • Increase the number of replicas in case the load increases.
  • Accept and route traffic to and from containers.
  • Allow only users with specific roles to access the containers.
  • Attach storage to containers.
  • More containers can be accommodated in the system by adding more nodes (servers).
  • ……

In other words, we need a horizontally scalable system that provides fault tolerance, security, networking and storage solutions for an ensemble of containers. Kubernetes does it all, in an efficient and convenient way. You might be thinking, isn’t the cloud services answer to this? Why don’t we just use a bunch of cloud services instead of these messy containers? Yes of course we can do that. However, it is not simple. Architecting a solution on cloud is non trivial, especially with budget constraints. Moreover, containers provide much more freedom. Using containers with orchestration systems like Kubernetes is good balance between convenience and design freedom. There is a reason why Kubernetes is available on all the major cloud solutions.

I talk about topics related to Kubernetes, DevOps, Cloud, Data and AI. For more such content follow me on LinkedId.

--

--

Karthik Subbarao

Specialist Solutions Architect @ Databricks | Helping customers implement Data & AI solutions | All opinions are my own