Ce dépôt documente la création d'un système d'exploitation Linux personnalisé, sa conteneurisation avec Docker, et son déploiement sur un cluster Kubernetes, dans le cadre du cours B38-M18P-MI1.
- Comprendre le processus de construction d'un système GNU/Linux à partir des sources.
- Maîtriser les concepts de virtualisation au niveau de l'OS (conteneurs).
- Apprendre les bases de l'orchestration de conteneurs avec Kubernetes.
- Lier les concepts théoriques (processus, mémoire, I/O, FS) à leur application pratique.
Ce projet est découpé en plusieurs étapes, chacune documentée dans un fichier dédié :
-
Étape 1 : Préparation de l'environnement Gentoo
- Installation d'un système de base Gentoo dans une VM VMware.
- Partitionnement, configuration de la compilation et installation d'un noyau de base.
-
Étape 2 : Création d'un OS personnalisé
- Création d'un système de fichiers FHS.
- Compilation de la
glibc
, deBusyBox
et d'un noyau Linux personnalisé.
-
Étape 3 : Création d'une clé USB Bootable
- Transfert de l'OS personnalisé sur une clé USB et configuration du bootloader
syslinux
.
- Transfert de l'OS personnalisé sur une clé USB et configuration du bootloader
-
Étape 4 : Installation et Configuration de Docker
- Recompilation du noyau avec les options nécessaires pour Docker (
namespaces
,cgroups
). - Installation du moteur Docker.
- Recompilation du noyau avec les options nécessaires pour Docker (
-
Étape 5 : Application Multi-Conteneurs
- Création des
Dockerfiles
pour une application web (frontend, backend, base de données). - Orchestration locale avec
docker-compose
.
- Création des
-
Étape 6 : Déploiement sur Kubernetes
- Écriture des manifestes
Deployment
etService
. - Déploiement de l'application sur le cluster K8s du laboratoire et gestion du stockage persistant avec NFS.
- Écriture des manifestes
Les fichiers de configuration clés utilisés tout au long de ce projet sont stockés dans le dossier config_files/.