# Première version : le Homelab "HA" monomachine (projet initial)
## Introduction
**Note importante** : Cette page décrit le **projet initial** que j'avais envisagé pour expérimenter avec Kubernetes. Ce projet a **évolué** vers une décision finale différente : un cluster Proxmox 3 nœuds (voir [Cluster 3 noeuds Proxmox](./cluster-3-noeuds-proxmox.md)).
L'idée initiale était de créer une **étape transitoire** vers une infrastructure distribuée complète, en expérimentant avec Kubernetes (K3S), l'Infrastructure as Code (OpenTofu/Terraform), Git et les pipelines CI/CD, tout en restant sur une seule machine physique.
## Objectifs de cette version
### Apprentissage pratique
Cette infrastructure monomachine permet d'acquérir une expérience concrète sur :
1.**Kubernetes (K3S)** :
- Installation et configuration d'un cluster K3S
- Gestion des pods, déploiements, services
- Configuration des ingress controllers
- Gestion du stockage persistant
- Utilisation de Helm pour les déploiements
2.**Infrastructure as Code** :
- Déclaration de l'infrastructure avec OpenTofu/Terraform
- Versionnement de toute la configuration dans Git
- Modules réutilisables et bonnes pratiques IaC
3.**GitOps et CI/CD** :
- Intégration avec Forgejo Actions pour les pipelines
- Déploiement automatique sur push Git (GitOps)
- Tests automatisés avant déploiement
- Rollback automatique en cas d'échec
4.**Observabilité** :
- Stack Prometheus + Grafana pour les métriques
- Loki pour la centralisation des logs
- Alerting et dashboards personnalisés
### Validation des concepts
L'objectif était de valider les concepts suivants avant d'investir dans du matériel :
- Valider l'architecture globale
- Tester les configurations Kubernetes
- Affiner les processus de déploiement
- Identifier les services compatibles avec K8S
**Évolution du projet** : Après réflexion, j'ai décidé d'utiliser des **VMs multiples** pour simuler un vrai cluster et apprendre les aspects distribués dès le début. Cette approche m'a permis d'expérimenter avec la répartition de charge, la tolérance aux pannes et les politiques d'affinité, ce qui n'aurait pas été possible sur un nœud unique.
## Architecture réseau
Le schéma illustre l'architecture réseau de cette première version :
- PodDisruptionBudgets : garantir la disponibilité
- Affinité/Anti-affinité : répartir les pods intelligemment
- Configuration réseau : CNI multi-nœuds
## Conclusion et évolution vers le cluster 3 nœuds
Ce projet initial de homelab "HA" monomachine a été une **réflexion importante** dans l'évolution de mon infrastructure :
**Points positifs de la réflexion initiale** :
- Identification claire des objectifs d'apprentissage Kubernetes
- Validation de l'architecture et des configurations cibles
- Compréhension des limitations d'une approche monomachine
**Décision finale** :
Après avoir analysé les limitations, notamment l'impossibilité de tester les aspects distribués (haute disponibilité, stockage Ceph, répartition de charge), j'ai décidé d'opter directement pour un **cluster Proxmox 3 nœuds**.
Cette décision permet :
- D'expérimenter avec de vraies VMs multiples simulant un cluster distribué
- De tester la haute disponibilité et le stockage distribué (Ceph)
- D'apprendre les aspects réseau complexes d'un cluster réel
- De construire une base solide pour une infrastructure production-ready
Pour plus de détails sur l'architecture finale retenue, voir la page [Cluster 3 noeuds Proxmox](./cluster-3-noeuds-proxmox.md).