Aller au contenu principal

Kubernetes en production : 7 bonnes pratiques essentielles

· 2 minutes de lecture
Karim Benali
Architecte Kubernetes @ InSkillOps

Faire tourner Kubernetes en local est une chose ; l'exploiter en production en est une autre. Voici 7 pratiques que nous appliquons systématiquement sur nos clusters.

1. Définir requests et limits

Sans requests/limits, un pod peut affamer ses voisins. Fixez toujours des valeurs réalistes :

resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "256Mi"

2. Configurer les probes

Les liveness et readiness probes évitent d'envoyer du trafic vers un pod pas encore prêt (ou bloqué) :

livenessProbe:
httpGet: { path: /healthz, port: 3000 }
initialDelaySeconds: 10
readinessProbe:
httpGet: { path: /ready, port: 3000 }

3. Activer l'autoscaling

Le Horizontal Pod Autoscaler ajuste le nombre de réplicas selon la charge :

kubectl autoscale deployment mon-app --cpu-percent=70 --min=2 --max=10

4. Verrouiller les accès avec RBAC

Appliquez le principe du moindre privilège : chaque ServiceAccount n'obtient que les droits dont il a besoin.

5. Isoler avec des namespaces

Séparez les environnements (dev, staging, prod) et les équipes par namespace, avec des ResourceQuotas pour éviter les débordements.

6. Ne jamais stocker de secrets en clair

Utilisez les Secrets Kubernetes, chiffrés au repos, ou un gestionnaire externe (Vault, AWS Secrets Manager). Jamais de mot de passe dans une image ou un manifeste versionné.

7. Surveiller et alerter

Prometheus + Grafana pour les métriques, un stack de logs centralisé, et des alertes sur les signaux clés (taux d'erreur, latence, saturation).


Ces pratiques forment la base d'un cluster robuste. On les détaille avec des ateliers pratiques dans le parcours Kubernetes.