Checklist de diagnostic
Quelque chose ne va pas et vous ne savez pas par où commencer ? Suivez cette page dans l’ordre.
Les 4 commandes réflexes
# 1. Vue d'ensemble : quels pods, dans quel état ?kubectl get pods -n <namespace>
# 2. Le détail d'un pod : événements, causes de redémarragekubectl describe pod <pod> -n <namespace>
# 3. Les logs de l'applicationkubectl logs <pod> -n <namespace> --previous
# 4. Les événements récents du namespacekubectl get events -n <namespace> --sort-by=.lastTimestampL’option --previous de kubectl logs affiche les logs de l’exécution
précédente — indispensable quand le conteneur redémarre en boucle.
Trouver son symptôme
| Symptôme | Cause la plus probable sur Kontainers | Page |
|---|---|---|
CrashLoopBackOff | L’application plante au démarrage | Mon pod est en erreur |
OOMKilled | Mémoire consommée > request (la limite lui est égale) | Mon pod est en erreur |
ImagePullBackOff | Registre inaccessible ou token expiré (aggravé par le pull Always forcé) | Mon pod est en erreur |
| Le Deployment existe mais aucun pod n’apparaît | Quota atteint ou politique de sécurité | ci-dessous |
Pod Pending | Quota CPU/mémoire du namespace atteint | ci-dessous |
| Site injoignable / certificat absent | DNS, Ingress ou émission ACME | ci-dessous |
| Connexion refusée entre deux services | Isolation réseau (namespaces d’organisations différentes) | ci-dessous |
Aucun pod ne se crée
Le Deployment est là, kubectl get pods ne montre rien (ou Pending). La cause
est presque toujours visible dans le ReplicaSet ou les événements :
kubectl describe deploy <deployment> -n <namespace> | tail -5kubectl get events -n <namespace> --sort-by=.lastTimestamp | tail -10Causes fréquentes, par ordre de probabilité :
- Quota atteint — le message contient
exceeded quota: blackswift-standard. Vérifiez votre consommation :Réduisez les requests, supprimez des workloads inutiles, ou demandez une augmentation.Fenêtre de terminal kubectl describe resourcequota blackswift-standard -n <namespace> - Rejet Pod Security — le message mentionne
violates PodSecurity "baseline": votre pod demandeprivileged,hostPath,hostNetwork… Ce n’est pas permis (pourquoi). - Toleration control-plane — message
Pods may not use tolerations which schedule on control plane nodes: retirez la toleration du manifest.
Site injoignable ou certificat absent
Dans l’ordre :
# 1. Le DNS pointe-t-il au bon endroit ?dig +short www.example.com# Attendu : ingress.k-bdkbsh.blackswift.hosting. puis des IP
# 2. L'Ingress est-il correctement câblé ?kubectl describe ingress <ingress> -n <namespace># Vérifiez host, service cible et port — un 503 = service/port incorrects
# 3. Le certificat est-il émis ?kubectl get certificates -n <namespace># READY=False ? Creusez :kubectl get certificaterequests,orders,challenges -n <namespace>Un challenge ACME bloqué vient presque toujours d’un DNS qui ne pointe pas encore vers la plateforme — voir Configurer votre DNS.
Connexion refusée vers un autre service
- Les namespaces d’une même organisation communiquent librement entre eux.
- Un service dans le namespace d’une autre organisation est injoignable par design (isolation réseau).
- Un NodePort/LoadBalancer injoignable depuis Internet ? Le label
exposition: publicdoit être sur les pods, pas sur le Service (détails).
Toujours bloqué ?
Contactez le support avec le namespace, les manifests concernés et la sortie des commandes ci-dessus : vous gagnerez un aller-retour.