De zéro · bare metal, VMware ou machine locale · MTC Computing Runbook
VERSION_ID="22.04"free -h — la ligne Swap doit afficher 0.limits.memory est défini.hostPath est réservé au test local. En production, utilisez un CSI driver ou NFS — le volume doit suivre le pod sur n'importe quel nœud.tls: dans la spec Ingress + cert-manager. Un Ingress HTTP sans TLS expose tout le trafic en clair.kubectl cordon <node> — interdit tout nouveau pod. Les pods existants continuent.kubectl drain <node> --ignore-daemonsets --delete-emptydir-datasudo systemctl stop kubeletsudo shutdown -h now ou snapshot VMware si VM.minikube stop et minikube start remplacent les étapes kubelet + uncordon.kubectl drain peut provoquer une interruption de service silencieuse. Définissez un PDB avant toute maintenance en production.| Concept | Rôle |
|---|---|
| Pod | Plus petite unité : 1 ou plusieurs conteneurs |
| Node | Machine physique ou virtuelle qui exécute les pods |
| Deployment | Gère le cycle de vie des pods (copies, mise à jour, redémarrage) |
| Service | Point d'entrée stable pour joindre un groupe de pods |
| Ingress | Routeur externe HTTP/HTTPS vers les services |
| ConfigMap / Secret | Paramètres (non-sensibles) ou mots de passe / tokens |
| PersistentVolume / PVC | Stockage durable pour bases de données |
| StatefulSet | Comme Deployment, mais pour les applis avec état (BDD) |
| Commande | Utilité |
|---|---|
| kubectl get all | Voir pods, services, deployments dans le namespace actuel |
| kubectl describe pod <nom> | Détails de l'état, événements, erreurs |
| kubectl logs <pod> | Logs du conteneur principal |
| kubectl exec -it <pod> -- /bin/sh | Entrer dans un conteneur pour déboguer |
| kubectl apply -f fichier.yaml | Créer ou modifier une ressource |
| kubectl delete -f fichier.yaml | Supprimer proprement |
| État | Signification | Réflexe |
|---|---|---|
| Pending | En attente de scheduling | kubectl describe pod → Events |
| CrashLoopBackOff | Démarre et plante en boucle | kubectl logs <pod> |
| OOMKilled | Tué par manque de RAM | Augmenter limits.memory |
| ImagePullBackOff | Image introuvable | Vérifier nom image et registry |
| Running | Opérationnel | — |
| Sujet | Omission fréquente |
|---|---|
| kubeadm | Swap non désactivé → kubelet échoue silencieusement |
| Secrets | Encodés base64, pas chiffrés — utiliser Vault en production |
| Ingress | TLS absent par défaut — ajouter cert-manager |
| CoreDNS | Pas de resource limits → saturation nœud possible |
| PV hostPath | Ne suit pas le pod sur un autre nœud |
| drain | Sans PodDisruptionBudget → interruption silencieuse |
| Dump SQL | Ne remplace pas le snapshot PV — toujours faire les deux |