Postmortem #11 - Incident Control Plane - 2025/10/01 14h & 2025/10/02 08h

Résumé

  • Impact utilisateurice : Les services sont innacessibles. Une erreur 502 s’affiche.
  • Cause : Services du control plane Kubernetes en erreur.
  • Résolution : Libération d’espace et redémarrage des VMs du control plan.

Il y a un glossaire en bas du post pour expliquer les termes techniques.

Durées

Start Time Incident Detected By(User-reported/ Ad-hoc monitoring/ Alerting system)
Durée de détection : inconnue (> 1h)
Durée d’investigation : 20min (10min + 10min)
Durée du retour à un service fonctionnel : 40min (20min + 20min)
Durée de résolution : 18h

Chronologie

Date Quoi
2025/10/01 14h Fr Appel d’un contributeur pour signaler une erreur 502 sur son nuage.
2025/10/01 14h02 Confirme l’incident et prévient le reste de l’équipe via les canneaux de communication dédiés aux incidents
2025/10/01 14h13 Redémarrage le control plane Kubernetes. L’ensemble des services reviennent à la normale progressivement
2025/10/01 14h16 Récupération d’un document spécifique directement depuis MinIO pour dépaner une contributrice qui m’en a fait la demande.
2025/10/02 07h18 Un contributeur nous prévient de services en erreurs par mail.
2025/10/02 08h Un autre contributeur nous appelle pour nous prévenir que ses services sont KO
2025/10/02 08h10 Redémarrage d’un serveur du control plane échoue à cause du disque plein. Vidage des fichiers non nécessaires sur le disque. Retour du serveur à l’état nominal.
2025/10/02 08h20 Tous les services sont rétablis

Impact

Impact sur les utilisateurices

Les services (web) fournis par IndieHosters sont innaccessibles pendant la durée de l’incident.

Impact sur l’infrastructure

Accès à l’infrastructure perturbé.
Redémarrage de plusieurs pods en erreur.

Cause de l’incident

L’espace disque sur le ‹ / › d’une des 3 VMs du control plane. Ce qui a entrainé un echec du service etcd et donc un impact sur tout le cluster.

Mitigation & Résolution

Le redémarrage de la VM du control plane en erreur l’a sortie du cluster du control plane ce qui a permis de rétablir le service.

Leçons apprises

Ce qui s’est bien passé

Agent d’IndieHosters disponible et réactif sur l’investigation et la mitigation de l’incident.
Communication de « crise » efficace au sein du collectif.

Ce qui s’est mal passé

  • Monitoring des applications KO depuis plusieurs semaines à cause d’un problème sur la machine qui héberge ce service.
  • Pas de monitoring sur l’espace disque des VMs du control plane.
  • PullAlways des images ralenti le retablissement du service.

Là où on a eu de la chance

  • L’infrastructure est robuste et au redémarrage d’une VM du control plane les services reviennent rapidement.

Actions

Actions à mettre en place

Glossaire des termes techniques

  • Kubernetes (=k8s) : Kubernetes est un logiciel qui permet de faire l’abstraction de la partie matérielle. Il peut être vu comme un hyperviseur permettant d’ordonnancer des containeurs.
    • Pod : Pod est un élement de Kubernetes. C’est un ensemble cohérent de containeurs pour une application. Dans notre infrastructure, pour une application comme Nextcloud, nous avons plusieurs pods (2 pour la base de données, 2 pour le redis, 2 à 10 pour l’application).
    • Control plane : Ensemble de services qui gère le cluster kubernetes et vérifie son état de fonctionnement. Chez IndieHosters, le control plane est géré par 3 VMs dédiées, isolées du reste du cluster sur des machines physiques dédiées.
  • MinIO : Logiciel d’exploitation de notre cluster de stockage. Implémentation libre du « standard de fait » Amazon Object Store S3, qui stocke les données sous forme d’objets. Contrairement aux technologies classiques de systèmes de fichiers qui stocke les données sous forme de dossiers et de fichiers. Permet une meilleure efficacité de stockage et un versionnage plus fin.
1 « J'aime »