Ilyes Bouzayen
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.