From 3c3690a26bb80b279b5214483d88dfafd8c6842d Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Tue, 15 Sep 2026 10:33:20 +0200 Subject: [PATCH] =?UTF-8?q?MinIO=20quitte=20pi2=20:=20son=20volume=20y=20a?= =?UTF-8?q?vait=20perdu=20son=20journal=20ext4,=20et=20aucun=20red=C3=A9ma?= =?UTF-8?q?rrage=20ne=20le=20d=C3=A9montait?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le 14/09, pi2 (109 % de mémoire, sans swap) a fait manquer au moteur Longhorn son délai de 8 s. Les écritures sont revenues au noyau en « critical medium error », ext4 a abandonné son journal et remonté le système de fichiers en lecture seule. Ce montage mort n'a jamais été démonté : MinIO échoue en boucle sur « drive is faulty » depuis 27 h. Une affinité requise `kubernetes.io/hostname NotIn [pi2]` (préférence pi3) : avec la stratégie Recreate, l'ancien pod s'arrête, le volume se détache de pi2 et se rattache ailleurs, où ext4 rejoue son journal. Refs arcodange-org/tools#49 Co-Authored-By: Claude Opus 5 --- minio/templates/deployment.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/minio/templates/deployment.yaml b/minio/templates/deployment.yaml index 302425e..192c6e2 100644 --- a/minio/templates/deployment.yaml +++ b/minio/templates/deployment.yaml @@ -56,6 +56,35 @@ spec: release: minio spec: serviceAccountName: minio + # --------------------------------------------------------------- + # ⚠⚠ JAMAIS SUR pi2 (incident arcodange-org/tools#49, 2026-09-14). + # + # pi2 tourne à ~110 % de mémoire, sans swap. Le moteur Longhorn d'un + # volume vit sur le nœud du POD : sur pi2, il a manqué son délai de 8 s + # (`R/W Timeout`), les écritures sont revenues au noyau en + # `critical medium error`, et ext4 a ABANDONNÉ son journal (04:05 puis + # 07:19). Le montage mort n'est jamais démonté par un redémarrage de + # conteneur : 314 redémarrages sur « drive is faulty » en 26 h. + # + # Même mécanisme que tools#31. Déplacer le pod déplace le moteur, et le + # déplacement démonte le volume — ext4 rejoue son journal au remontage. + # --------------------------------------------------------------- + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: NotIn + values: [pi2] + preferredDuringSchedulingIgnoredDuringExecution: + # pi3 est le moins chargé en mémoire (58 % au 2026-09-15, pi1 81 %). + - weight: 50 + preference: + matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: [pi3] securityContext: # Repris tel quel : la donnée déjà écrite sur le volume appartient à # 1000:1000. Changer ces valeurs rendrait le bucket illisible. -- 2.54.0