Skip to main content

Chapter 1.2 - Why Kubernetes?

Learning Objectives​

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

  • Identify the concrete advantages of Kubernetes
  • Understand the problems that Kubernetes solves
  • Compare Kubernetes with other solutions
  • Justify the adoption of Kubernetes in an organization

Introduction​

Now that you know what Kubernetes is, let's explore why you should use it. What are the concrete advantages? What problems does it solve?


The 7 Main Reasons to Use Kubernetes​

1. Infrastructure Abstraction​

Kubernetes allows you to stop worrying about infrastructure details:

Before Kubernetes:

# You have to manage manually:
- Which machine to deploy on?
- How to balance the load?
- How to handle failures?
- How to scale?

With Kubernetes:

# You simply declare:
replicas: 3
# Kubernetes does the rest!

2. Multi-Cloud Portability​

Kubernetes works everywhere:

Advantages:

  • No vendor lock-in
  • Easy migration between clouds
  • Same API everywhere
  • Local development = Production

3. Intelligent Auto-Scaling​

Kubernetes scales automatically based on load:

Concrete example:

  • Morning: 2 Pods are enough (low load)
  • Noon: 10 Pods needed (traffic peak)
  • Evening: 3 Pods are enough (normal load)

All automatic!


4. Self-Healing​

Kubernetes automatically restarts applications that crash:

Scenarios handled automatically:

  • Container crashes -> Automatic restart
  • Machine goes down -> Redistribution on other machines
  • Application not responding -> Automatic replacement

5. Rolling Updates Without Interruption​

Kubernetes allows you to update your application without downtime:

Advantages:

  • Updates without service interruption
  • Instant rollback in case of issues
  • Progressive deployment (Canary, Blue/Green)

6. Centralized Configuration Management​

All configuration is centralized and versioned:

Advantages:

  • Configuration versioned in Git
  • No hardcoding in the code
  • Config changes without rebuild
  • Secrets managed securely

7. Rich Ecosystem​

Kubernetes has a huge ecosystem:

Advantages:

  • Ready-to-use tools
  • Active community
  • Abundant documentation
  • Commercial support available

Comparison: With vs Without Kubernetes​

Scenario: Deploying an Application​

Without Kubernetes​

Time: 2-4 hours
Complexity: High
Maintenance: Ongoing

With Kubernetes​

Time: 5-10 minutes
Complexity: Low
Maintenance: Automatic


ROI (Return on Investment)​

Productivity Gains​

Result: 4x more time to develop features!

Cost Reduction​

  • Fewer machines: Better resource utilization
  • Less downtime: Self-healing
  • Fewer errors: Automated deployments
  • Less maintenance: Automatic management

When to Use Kubernetes?​

Kubernetes is ideal for:​

  • Applications with multiple services (microservices)
  • Applications that need to scale rapidly
  • Critical applications requiring high availability
  • Mature DevOps teams
  • Multi-cloud environments

Kubernetes may be overkill for:​

  • Simple, monolithic applications
  • Small projects with low traffic
  • Teams without DevOps experience
  • Limited budget (initial complexity)

Chapter Summary​

In this chapter, you learned:

7 main reasons to use Kubernetes
Infrastructure abstraction - you focus on the code
Multi-cloud portability - no vendor lock-in
Auto-scaling - automatic adaptation to load
Self-healing - automatic restart
Rolling updates - updates without interruption
Centralized configuration - simplified management
Rich ecosystem - many tools available


Next Steps​

Now that you understand why to use Kubernetes:

Chapter 1.3: History and Evolution of Kubernetes
Chapter 1.4: High-Level Architecture


Previous chapter: Chapter 1.1 - What is Kubernetes?
Next chapter: Chapter 1.3 - History and Evolution
Back to module: Module 1 - Introduction to Kubernetes


Chapter created: December 2024