OUAHABI Ibrahim 5IW3 ESGI Paris
Mettre en place une application conteneurisée et orchestrée avec :
- Backend : NestJS (TypeScript)
- Frontend : React (JavaScript)
- Base de données : PostgreSQL
Déployée sur un cluster Kubernetes pour démontrer :
✅ Haute disponibilité
✅ Persistance des données
✅ Sécurité (Secrets)
✅ Exposition via Ingress
/backend/backend-app → NestJS backend
/frontend/frontend-app → React frontend
/k8s → Manifests Kubernetes (YAML)
- Active Kubernetes dans Docker Desktop
- Vérifie :
kubectl cluster-info
kubectl get nodesBackend :
cd backend/backend-app
docker build -t iouahabi/backend:latest .
docker push iouahabi/backend:latestFrontend :
cd frontend/frontend-app
docker build -t iouahabi/frontend:latest .
docker push iouahabi/frontend:latestAjoute à la fin de C:\Windows\System32\drivers\etc\hosts :
127.0.0.1 app.local
kubectl apply -f k8s/secrets.yaml
kubectl apply -f k8s/postgres.yaml
kubectl apply -f k8s/backend.yaml
kubectl apply -f k8s/frontend.yaml
kubectl apply -f k8s/ingress.yaml
kubectl apply -f k8s/frontend-hpa.yaml # Bonus HPAkubectl get pods
kubectl get services
kubectl get ingress
kubectl get hpa- Frontend → http://app.local/frontend
- Backend → http://app.local/backend
- Secrets stockés dans
k8s/secrets.yaml - Variables d’environnement injectées dans les pods
- Suppression d’un pod frontend → Kubernetes recrée automatiquement le pod
- Scale up/down :
kubectl scale deployment frontend --replicas=5
kubectl scale deployment frontend --replicas=3- Autoscaling (HPA) :
kubectl get hpakubectl get pods→kubectl get services→kubectl get ingress→- Backend →
- Frontend →
- HPA →
- Test de résilience →
- Schéma d’architecture →

- Autoscaling horizontal (HPA)
- Installation de Metrics Server
Ce projet démontre la capacité à déployer une application complète (frontend, backend, base de données) sur Kubernetes, avec haute disponibilité, ingress, secrets, et autoscaling.
Merci pour votre attention !
- Docker Hub : iouahabi
- GitHub : [Narutino10]