Déploiement sur Kubernetes
1. Environnement
Le déploiement est réalisé sur Minikube pour l’environnement de développement, mais les manifests sont compatibles avec tout cluster Kubernetes (GKE, EKS, etc.).
2. Composants Kubernetes
- Deployments pour chaque service (backend, frontend, scraper, db, mongo)
- Services (ClusterIP pour l’interne, LoadBalancer pour l’externe)
- Probes (liveness, readiness) sur le backend (
/health) - Volumes persistants pour PostgreSQL et MongoDB
- Namespace dédié :
letterbox
Extrait de manifest (devops/kubernetes-deployment.yaml) :
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend
namespace: letterbox
spec:
replicas: 2
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: letterbox-backend:latest
ports:
- containerPort: 8001
livenessProbe:
httpGet:
path: /health
port: 8001
initialDelaySeconds: 10
periodSeconds: 103. Commandes principales
minikube start
kubectl apply -f devops/kubernetes-deployment.yaml
minikube service frontend -n letterbox4. Objectifs atteints
- Déploiement reproductible et automatisé
- Isolation des services et des données
- Scalabilité horizontale (replicas)
- Monitoring et gestion des logs via Kubernetes