In this post, we will have an Intro to Kubernetes. Basically, a high-level view of Kubernetes and what it intends to do.

In an earlier post, we had also looked at difference between Docker and Kubernetes.

In a nutshell, Kubernetes is a production-ready modern container orchestration system. It is ideal for deploying microservices. Originally designed by Google, Kubernetes is now open-source.

Kubernetes provides services for container deployment, service discovery, scaling, recovery and so on. It goes hand-in-hand with containerized applications. Also, Kubernetes supports run-times such as Docker, CRI-O, rkt etc.

Kubernetes is a Greek word, meaning a Ship’s pilot. Therefore, its logo represents a ship’s steering wheel.

1. Architecture of Kubernetes

Kubernetes consists of nodes. Basically, these nodes reside on the host infrastructure.

There are two types of nodes in Kubernetes. The first is a master node also known as Kubernetes controller. The second type of nodes are one or more worker nodes. These nodes are also known as Kubernetes minions.

Basically, the master node manages and monitors the operation of worker nodes.

These worker nodes are responsible for running the pods. A Kubernetes pod is basically the lowest level of deployment in a typical Kubernetes application.

2. Features of Kubernetes

An intro to Kubernetes is not complete without looking at its features. Some of the major features of Kubernetes are as follows:

  • Service Discovery – This is one of the most important features of Kubernetes. It allows deployed containers to talk to other containers without the need for additional code. In others words, this allows producers to scale on-demand and redeploy applications without worrying about IP addresses.
  • Load BalancingKubernetes inherently allows for load balancing. This is because service discovery is taken care by Kubernetes thereby making it easy to perform load balancing.
  • Automated Deployments and Rollbacks – Kubernetes allows for automated deployments. In other words, Kubernetes spins up additional containers of an application. The traffic is directed to new pods automatically. Also, Kubernetes provides ability to automatically rollback to previous application state.
  • Automated Recovery – Kubernetes also provides automatic recovery of services. Basically, if a service fails to respond within a stipulated time, Kubernetes kills the pod and creates a new pod. This leads to self-healing applications.
  • Storage Management – With Kubernetes, it is also possible to mount stateful storage services. We can use underlying file systems such as NAS, GlusterFS. Kubernetes preserves the state of the file system.
  • Bin Packing – This is a feature that restricts or provides a minimum quantity of resources such as CPU and memory. In other words, Kubernetes manages the resource allocation for a pod.

Conclusion

Kubernetes is a platform for modern container applications. It lets developers focus on writing application code rather than worrying about infrastructure. Kubernetes also facilitates the paradigm of infrastructure-as-code.

In future posts, we will look into more details about Kubernetes.

Categories: BlogKubernetes

Saurabh Dashora

Saurabh is a Software Architect with over 12 years of experience. He has worked on large-scale distributed systems across various domains and organizations. He is also a passionate Technical Writer and loves sharing knowledge in the community.

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *