What is Kubernetes and why do we use it?

What is Kubernetes?

Kubernetes (aka k8s) is an open-source platform designed to automate the deployment, scaling, and operation of application containers. It also manages the life cycle of containerized applications and services.

Imagine you’ve created an application split into microservices, each running in its own container. How do you manage and orchestrate these containers effectively? Here’s where Kubernetes steps in. It groups containers that make up an application into logical units for easy management.

Kubernetes operates on the principle of a master-slave architecture. The master node controls and schedules the application containers on worker nodes where the actual services run.

Why Use Kubernetes?

With Microservice architecture, applications are broken down into small, manageable pieces that can be developed, deployed, and scaled independently. However, this granularity introduces complexity in management.

Kubernetes addresses this complexity by providing:

  • Load Balancing: It can distribute network traffic to ensure stability.
  • Service Discovery: Automatically identifies different services within the cluster.
  • Storage Orchestration: Manages storage attached to the cluster.
  • Automated Rollouts and Rollbacks: Manages application updates and changes.

It shines particularly in scenarios where you need to run many different containers over multiple machines, which is common in microservices architecture. When updates roll out, Kubernetes can ensure zero downtime by creating and destroying containers dynamically, handling high availability.

,