Aller au contenu principal

Chapitre 1.4 - Architecture de Haut Niveau

Objectifs d'Apprentissage

À la fin de ce chapitre, vous serez capable de:

  • Comprendre la structure d'un cluster Kubernetes
  • Identifier les composants du Control Plane
  • Identifier les composants des Worker Nodes
  • Comprendre la communication entre les composants

Introduction

Un cluster Kubernetes est composé de machines organisées en deux groupes principaux: le Control Plane (anciennement Master) et les Worker Nodes. Comprendre cette architecture est essentiel pour maîtriser Kubernetes.


Vue d'Ensemble d'un Cluster

Structure de Base

Deux types de machines:

  1. Control Plane: Prend les décisions et gère l'état
  2. Worker Nodes: Exécutent les applications

Le Control Plane (Master)

Rôle Principal

Le Control Plane est le "cerveau" du cluster:

Responsabilités:

  • Gérer l'état désiré du cluster
  • Prendre les décisions de déploiement
  • Coordonner les Worker Nodes
  • Exposer l'API Kubernetes

Composants du Control Plane

1. API Server

Rôle: Point d'entrée unique pour toutes les interactions

Fonctionnalités:

  • Valide et traite toutes les requêtes
  • Expose l'API REST Kubernetes
  • Authentification et autorisation
  • Rate limiting

2. etcd

Rôle: Base de données distribuée - Source de vérité

Caractéristiques:

  • Base de données clé-valeur distribuée
  • Stocke TOUT l'état du cluster
  • Source de vérité unique
  • Haute disponibilité (plusieurs instances)

Important: etcd est critique - sa perte = perte du cluster!

3. Controller Manager

Rôle: Exécute les boucles de contrôle

Controllers inclus:

  • Deployment Controller
  • ReplicaSet Controller
  • Service Controller
  • Node Controller
  • Et bien d'autres...

Principe: Surveille l'état désiré vs l'état réel et prend des actions correctives

4. Scheduler

Rôle: Décide sur quel node placer les nouveaux Pods

Critères de sélection:

  • Ressources disponibles (CPU, RAM)
  • Contraintes (affinity, anti-affinity)
  • Équilibrage de charge
  • Politiques de placement

Les Worker Nodes

Rôle Principal

Les Worker Nodes exécutent les applications:

Composants d'un Worker Node

1. kubelet

Rôle: Agent qui communique avec l'API Server

Fonctionnalités:

  • Reçoit les instructions de l'API Server
  • Gère les Pods sur le node
  • Surveille la santé des conteneurs
  • Rapporte l'état au Control Plane

2. kube-proxy

Rôle: Gère le networking au niveau du node

Fonctionnalités:

  • Implémente les Services (load balancing)
  • Gère les règles de réseau
  • Routing du trafic vers les Pods
  • Network Policies

3. Container Runtime

Rôle: Exécute les conteneurs

Runtimes supportés:

  • Docker (déprécié mais encore utilisé)
  • containerd (recommandé)
  • CRI-O (lightweight)

Interface: CRI (Container Runtime Interface)


Communication dans le Cluster

Flux de Communication

Communication API Server ↔ Nodes

Protocole: HTTPS (sécurisé) Direction: Bidirectionnelle

  • API Server → Nodes: Instructions
  • Nodes → API Server: Rapports d'état

Haute Disponibilité

Control Plane HA

Pour la production, le Control Plane doit être hautement disponible:

Recommandation: Minimum 3 instances pour quorum


Résumé du Chapitre

Dans ce chapitre, vous avez appris:

Cluster = Control Plane + Worker Nodes
Control Plane: API Server, etcd, Controller Manager, Scheduler
Worker Nodes: kubelet, kube-proxy, Container Runtime
API Server: Point d'entrée unique
etcd: Base de données de l'état
kubelet: Agent sur chaque node
Communication: HTTPS entre tous les composants


Prochaines Étapes

Maintenant que vous comprenez l'architecture:

Chapitre 1.5: Concepts Fondamentaux (Pods, Services, etc.)
Lab 1.1: Premier Déploiement


Chapitre créé le: Décembre 2024