Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

☸️ Partie 1 : Les Fondamentaux & l'Architecture

Introduction, Architecture (Control Plane, Nodes), Concept Clé (État Désiré), Éditions & Prix.

1.1 Facile

1. Introduction (Le "Pourquoi ?")

Orchestration de conteneurs (CNCF). Automatise le déploiement, scaling, et la gestion.

Intro CNCF
1.2 Moyen

Concept Clé : État Désiré

Le cœur de K8s. Déclaratif (YAML) vs Impératif (kubectl run). Boucle de réconciliation.

Declarative Reconciliation
1.3 Moyen

2. Architecture (Vue d'ensemble)

Le "Cerveau" (Control Plane) vs les "Muscles" (Worker Nodes).

Control Plane Worker Node
1.4 Avancé

Control Plane (Deep Dive)

api-server (la porte), etcd (la mémoire), scheduler (le répartiteur), controller (la boucle).

etcd api-server
1.5 Avancé

Worker Nodes (Deep Dive)

kubelet (l'agent), kube-proxy (le réseau), Container Runtime (le moteur).

kubelet kube-proxy
1.6 Moyen

3. Éditions (Flavors)

Open Source (Minikube, K3s), Cloud (GKE, EKS, AKS), Enterprise (OpenShift, Rancher).

GKE EKS OpenShift
1.7 Facile

4. Prix (Coûts)

Open source (gratuit, coûts infra). GKE/EKS (~$72/mois). AKS (control plane gratuit).

Pricing GKE AKS
1.8 Facile

Images (Diagrammes)

Visualisation de l'architecture, du réseau, et du cycle de vie des Pods.

Diagrams Visuals
1. Introduction (Le "Pourquoi ?")
Qu'est-ce que Kubernetes ?

[cite_start]Kubernetes (K8s) est une plateforme d'orchestration de conteneurs open source[cite: 3]. [cite_start]Initialement développée par Google (sous le nom de "Borg"), elle est maintenant maintenue par la CNCF (Cloud Native Computing Foundation)[cite: 3].

[cite_start]Son rôle est d'**automatiser le déploiement, la mise à l'échelle (scaling) et la gestion** des applications conteneurisées[cite: 4].

Le Problème (Avant K8s)

Monolithe (VM) : Une seule grosse application. Difficile à mettre à jour, une panne = tout tombe.

Microservices (Docker) : L'application est découpée (ex: API, Frontend, DB). C'est flexible, mais...
... Comment gérer 500 conteneurs ? Que faire si un conteneur "api-users" tombe ? Comment "scaler" (passer de 5 à 50) le conteneur "frontend" pendant un pic de trafic ?

La Solution (K8s)

K8s est "l'OS du cloud". Il gère le "cluster" (l'ensemble des machines) comme une seule super-machine. Il fournit :

  • Auto-réparation (Self-healing) : Relance les conteneurs qui plantent.
  • Mise à l'échelle (Scaling) : (Horizontale) Ajoute/Supprime des copies (Pods) de votre app.
  • Déploiement (Rollout) : Met à jour une app sans temps mort (Rolling Update).
  • Découverte (Service Discovery) : Gère le réseau entre les conteneurs (Services).
Concept Clé : État Désiré (Declarative)

C'est le concept le plus important. K8s fonctionne sur un modèle **déclaratif** (via des fichiers YAML).

Impératif (Ce qu'on fait SANS K8s)

Donner des ordres (verbes) :

$ ssh machine-1
$ docker run nginx
$ ssh machine-2
$ docker run nginx
$ (Oups, machine-1 vient de tomber)
$ (Vite, je dois relancer nginx sur machine-3 !)
Déclaratif (Ce qu'on fait AVEC K8s)

Décrire un état (noms) :

# (mon-app.yaml)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3 # (L'ÉTAT DÉSIRÉ)
  template:
    spec:
      containers:
      - name: nginx
        image: nginx:latest
La Boucle de Réconciliation (Controller Manager)

Vous donnez le YAML à K8s (kubectl apply -f mon-app.yaml). L'état désiré (3 répliques) est sauvé dans etcd (la base de données).

Le Controller Manager (le thermostat) observe en permanence :

ÉTAT DÉSIRÉ (ETCD) == ÉTAT ACTUEL (CLUSTER) ?

  • Cas 1 (Initial) : Désiré=3, Actuel=0. Action : Le Scheduler place 3 Pods.
  • Cas 2 (Panne) : Un Nœud tombe. Désiré=3, Actuel=2. Action : Le Scheduler place 1 nouveau Pod sur un Nœud sain.

Vous ne gérez plus les pannes, vous ne faites que décrire le résultat final.

2. Architecture (Vue d'ensemble)

[cite_start]Un cluster Kubernetes est composé de deux types de machines : le Control Plane (le cerveau) et les Worker Nodes (les muscles)[cite: 6].

[cite_start]
Diagramme (Basé sur la source [cite: 6])
+-------------------------------------------------+
| Control Plane (Master Node(s))                  |
| (Le "Cerveau" - Gère le cluster)                |
| +-----------+   +-----------+   +-------------+ |
| | API Server| - | etcd (DB) | - | Controller  | |
| | (Porte)   |   | (État)    |   | Manager     | |
| +-----------+   +-----------+   +-------------+ |
|      |                                |         |
|      +---------- [Scheduling] -------+         |
|      |                                |         |
|      ▼                                |         |
| +-----------+                         |         |
| | Scheduler |                         |         |
| +-----------+                         |         |
+-------------------------------------------------+
      | (Ordres)                        | (Ordres)
      ▼                                 ▼
+-------------------------+   +-------------------------+
| Worker Node 1           |   | Worker Node 2           |
| (Les "Muscles" - Exécute) |   | (Les "Muscles" - Exécute) |
| +---------------------+ |   | +---------------------+ |
| | Kubelet (Agent)     | |   | | Kubelet (Agent)     | |
| | kube-proxy (Réseau) | |   | | kube-proxy (Réseau) | |
| | Container Runtime   | |   | | Container Runtime   | |
| |                     | |   | |                     | |
| | [Pod] [Pod] [Pod]   | |   | | [Pod] [Pod]         | |
| +---------------------+ |   | +---------------------+ |
+-------------------------+   +-------------------------+
            
Control Plane (Deep Dive)

[cite_start]Le Control Plane est le "cerveau". Il prend les décisions[cite: 6]. (En production, il est répliqué 3x ou 5x pour la Haute Disponibilité).

[cite_start]
ComposantRôle (Analogie)Description [cite: 6]
kube-apiserverLa "Porte d'entrée" (Gardien)Le seul composant qui expose l'API K8s. kubectl lui parle. Il valide et traite les requêtes REST.
etcdLa "Mémoire" (Base de données)Base de données Clé/Valeur qui stocke l'état désiré (desired state) et l'état actuel (current state) de **tout** le cluster (ex: "Deployment X veut 3 Pods").
kube-controller-managerLe "Thermostat" (Auto-pilote)Gère les "boucles de réconciliation". (Ex: Le "Deployment Controller" voit Désiré=3, Actuel=2 -> il demande à l'API Server de créer 1 Pod).
kube-schedulerLe "Répartiteur" (RH)Observe les Pods "non-assignés". Choisit le meilleur Worker Node pour eux (basé sur CPU, RAM, contraintes...).
Worker Nodes (Deep Dive)

[cite_start]Les Worker Nodes sont les "muscles". Ils exécutent les applications (Pods)[cite: 6].

[cite_start]
ComposantRôle (Analogie)Description [cite: 6]
kubeletL'"Agent" (Contremaître)L'agent K8s qui tourne sur *chaque* nœud. Il communique avec l'API Server (reçoit ses ordres) et s'assure que les conteneurs (Pods) tournent comme demandé.
kube-proxyLe "Routier" (Réseau)Gère le réseau sur le nœud. Il maintient les règles réseau (iptables/ipvs) pour que les Services (voir Partie 3) puissent router le trafic vers les bons Pods.
Container RuntimeLe "Moteur"Le logiciel qui exécute réellement les conteneurs (ex: Docker, containerd (défaut moderne), CRI-O). Le kubelet lui donne les ordres.
3. Éditions (Flavors)

[cite_start]Il existe différentes "saveurs" de Kubernetes[cite: 7].

[cite_start] [cite_start] [cite_start]
CatégorieDescriptionExemples (basés sur la source)
Open Source (Local/DIY)Vous gérez tout, y compris le Control Plane.kubeadm (standard) [cite: 8, 12][cite_start], Minikube (dev local) [cite: 8, 12][cite_start], K3s (léger, IoT/Edge)[cite: 8, 12, 24].
Cloud Managed (SaaS)Le Cloud Provider (Google, AWS, Azure) gère le Control Plane (API Server, etcd...) pour vous (coûteux mais fiable).GKE (Google), EKS (Amazon), AKS (Azure), DOKS (DigitalOcean)[cite: 8, 12].
Enterprise (On-Premise)Distributions "packagées" avec support, sécurité et UI (ex: Red Hat, SUSE).OpenShift (Red Hat), Rancher (SUSE), Tanzu (VMware)[cite: 8].
4. Prix (Coûts)

[cite_start]L'open source est gratuit, mais vous payez l'infrastructure (serveurs, VMs)[cite: 10].
[cite_start]Pour les services managés (Cloud)[cite: 10]:

    [cite_start]
  • GKE (Google) / EKS (AWS) : Coûtent environ 0.10$/heure (soit ~$72/mois) pour la gestion du Control Plane (par cluster)[cite: 10]. (Le compute/Worker Nodes est payé en plus).
  • [cite_start]
  • AKS (Azure) : Le Control Plane est gratuit (dans le "Free Tier"), seul le compute (Worker Nodes) est payant[cite: 10].
Images (Diagrammes)
[cite_start]

Le PDF mentionne plusieurs images clés[cite: 31, 32]. Voici des représentations conceptuelles de ces diagrammes.

Architecture (Control Plane / Nodes)
[cite_start]

Visualise la relation Maître (Control Plane) / Esclave (Worker Nodes)[cite: 32]. (Voir Modale 1.3).

Réseau (Networking)
[cite_start]

Montre comment les Pods communiquent (via CNI), comment les Services exposent les Pods (kube-proxy), et comment l'Ingress gère le trafic externe (Nginx)[cite: 18, 32].

Cycle de Vie du Pod (Pod Lifecycle)
[cite_start]

Montre les états d'un Pod : Pending (en attente), ContainerCreating, Running (en cours), Succeeded (Job terminé), Failed (planté)[cite: 32].

RBAC (Roles)
[cite_start]

Visualise le système de sécurité : Un User/ServiceAccount a un Role (ex: "lire les pods") via un RoleBinding[cite: 20, 32].