11 juil. 2026
Kubernetes en Production en 2026 : Le Checklist Complet
18 min de lecture
Kubernetes en Production en 2026 : Le Checklist Complet
Déployer sur Kubernetes en dev est facile. En production, c'est un autre sport. Voici la checklist complète.
1. Cluster sizing
# Ne pas surdimensionner
# Règle : commencer petit, autoscaler
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: api-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: api
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
2. Resource requests et limits
containers:
- name: api
resources:
requests:
cpu: "250m" # Minimum garanti
memory: "256Mi"
limits:
cpu: "500m" # Maximum autorisé
memory: "512Mi" # OOMKill au-delà
# ⚠️ Toujours définir les requests
# Sinon : pods qui bouffent toute la RAM du node
3. Health checks
livenessProbe:
httpGet:
path: /healthz
port: 3000
initialDelaySeconds: 10
periodSeconds: 5
failureThreshold: 3
# Si le pod ne répond pas → restart automatique
readinessProbe:
httpGet:
path: /readyz
port: 3000
initialDelaySeconds: 5
periodSeconds: 3
failureThreshold: 2
# Si le pod n'est pas prêt → pas de trafic
startupProbe:
httpGet:
path: /healthz
port: 3000
failureThreshold: 30
periodSeconds: 2
# Démarrage lent autorisé (60s max)
4. Secrets management
# ❌ Mauvais : secret en clair dans le repo
# ✅ Bon : Sealed Secrets ou External Secrets Operator
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: db-credentials
spec:
refreshInterval: 1h
secretStoreRef:
name: aws-secrets-manager
kind: SecretStore
target:
name: db-credentials
data:
- secretKey: password
remoteRef:
key: prod/db/password
5. Network Policies
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-only-frontend
spec:
podSelector:
matchLabels:
app: api
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- port: 3000
# Le backend n'accepte que le frontend
# Tout le reste est bloqué
6. Pod Disruption Budget
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: api-pdb
spec:
minAvailable: 1
selector:
matchLabels:
app: api
# Au moins 1 pod toujours en vie
# Pendant les mises à jour rolling
Checklist finale
| Catégorie | Vérification | Priorité |
|---|---|---|
| Resources | requests + limits définis | 🔴 |
| Health | liveness + readiness probes | 🔴 |
| Secrets | Pas de secrets en clair | 🔴 |
| Network | Network policies actives | 🔴 |
| PDB | PodDisruptionBudget configuré | 🟡 |
| HPA | Autoscaling horizontal | 🟡 |
| RBAC | Least privilege | 🟡 |
| Logging | Structured logs + fluentd | 🟡 |
| Monitoring | Prometheus + Grafana | 🟢 |
| Backup | Velero pour les PV | 🟢 |
Conclusion
Kubernetes en production = defensiveness. Tout peut crasher. Planifiez-le.