Skip to main content

Chapter 1.1 - What is Kubernetes?

Learning Objectives​

By the end of this chapter, you will be able to:

  • Define Kubernetes and explain its role
  • Understand why Kubernetes is necessary
  • Identify the problems Kubernetes solves
  • Explain the benefits of container orchestration

Introduction​

Kubernetes (often abbreviated as K8s) is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications.

Why "K8s"?​

The "8" represents the 8 letters between the "K" and the "s" in "Kubernetes":

  • Kubernetes = K + 8 letters + s = K8s

Simple Definition​

Imagine you have several applications (microservices) that need to:

Kubernetes does all this automatically for you.


Analogy: The Conductor​

Just as a conductor coordinates musicians to create a harmonious symphony, Kubernetes coordinates your containers to work together efficiently and reliably.


Challenges Without Kubernetes​

Problem 1: Manual Container Management​

Without orchestration, you must manage each container manually:

Problems:

  • Tedious manual management
  • No automatic restart
  • Complex and manual scaling
  • No integrated load balancing
  • Dispersed configuration management
  • No service discovery

Problem 2: Production Complexity​

In production, you need:

Without Kubernetes, each aspect must be managed manually!


Benefits With Kubernetes​

Complete Solution​

Key Features​

1. Automatic Orchestration​

Kubernetes automatically manages:

  • The deployment of your containers
  • Restarting in case of crashes
  • Distribution across available machines
  • The complete lifecycle of applications

2. Scaling​

  • Automatic increase/decrease of the number of instances
  • Adaptation to workload
  • Resource usage optimization

3. Self-Healing​

  • Automatic restart of crashing containers
  • Replacement of failing containers
  • Redistribution in case of machine failure

4. Service Discovery​

  • Automatic communication between services
  • Integrated load balancing
  • Internal DNS management

5. Configuration Management​

  • Centralized configuration storage
  • Secure management of secrets
  • Declarative deployments (you describe the desired state)

Typical Use Cases​

1. Microservices​

Kubernetes is ideal for:

  • Applications composed of many small services
  • Inter-service communication
  • Independent deployment of each service

2. Cloud-Native Applications​

  • Applications designed for the cloud
  • Automatic scalability
  • Resilience and self-healing
  • Portability across environments

3. DevOps and CI/CD​

  • Automated deployments
  • Easy rollback in case of issues
  • Multiple environments (dev, staging, prod)

4. Multi-cloud and Hybrid Cloud​

  • Deployment across multiple clouds
  • Portability across environments
  • Avoid vendor lock-in

Chapter Summary​

In this chapter, you learned:

Kubernetes is a container orchestration platform
It automates the deployment, scaling, and management of applications
It solves the problems of manual container management
It offers: orchestration, scaling, self-healing, service discovery
It is ideal for: microservices, cloud-native, DevOps, multi-cloud


Next Steps​

Now that you understand what Kubernetes is, let's move on to:

Chapter 1.2: Why Kubernetes? (Detailed Benefits)
Chapter 1.3: History and Evolution


Back to module: Module 1 - Introduction to Kubernetes
Next chapter: Chapter 1.2 - Why Kubernetes?


Chapter created on: December 2024