From 558521ee3fa2b61223ad67858bd8068ca7025442 Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Tue, 15 Sep 2026 10:34:59 +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=20(#50)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Une affinité requise `kubernetes.io/hostname NotIn [pi2]` (préférence pi3) : avec la stratégie Recreate, le volume se détache de pi2 et se rattache ailleurs, où ext4 rejoue son journal abandonné le 14/09. Refs arcodange-org/tools#49 Co-Authored-By: Claude Opus 5 Co-authored-by: Gabriel Radureau --- 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.