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:
- Control Plane: Prend les décisions et gère l'état
- 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