Prometheus quitte pi1 pour pi3 : son volume y avait perdu son journal ext4 le même jour que MinIO (#51)
Helm Charts / Detect changed charts (push) Successful in 29s
Helm Charts / Library charts tool (push) Skipped
Helm Charts / Application charts alloy (push) Skipped
Helm Charts / Application charts chart (push) Skipped
Helm Charts / Application charts crowdsec (push) Skipped
Helm Charts / Application charts grafana (push) Skipped
Helm Charts / Application charts hashicorp-vault (push) Skipped
Helm Charts / Application charts loki (push) Skipped
Helm Charts / Application charts minio (push) Skipped
Helm Charts / Application charts pgbouncer (push) Skipped
Helm Charts / Application charts pgcat (push) Skipped
Helm Charts / Application charts redis (push) Skipped
Helm Charts / Application charts prometheus (push) Successful in 23s

Affinité requise `NotIn [pi2]` et préférence forte pour pi3 : recréé sur un autre nœud, le volume `prometheus-server` (en lecture seule depuis le 14/09 05:16Z) est détaché puis rattaché, et ext4 rejoue son journal.

Refs arcodange-org/tools#49

Co-Authored-By: Claude Opus 5 <[email protected]>
Co-authored-by: Gabriel Radureau <[email protected]>
This commit was merged in pull request #51.
This commit is contained in:
2026-09-15 11:45:24 +02:00
committed by arcodange
co-authored by Claude Opus 5
parent 558521ee3f
commit e64d708565
+31 -1
View File
@@ -493,7 +493,37 @@ prometheus: &prometheus_config
## Pod affinity
##
affinity: {}
# ---------------------------------------------------------------
# ⚠⚠ JAMAIS SUR pi2, ET LE RECRÉER AILLEURS QUE SUR LE NŒUD DU MONTAGE MORT
# (incident arcodange-org/tools#49, 2026-09-14 → 15).
#
# Le 14/09 à 05:16Z, le volume `prometheus-server` (moteur sur pi1, une
# réplique sur pi2 à ~110 % de mémoire) a vu son journal ext4 ABANDONNÉ :
# système de fichiers remonté en lecture seule, `write to WAL: input/output
# error` pendant 27 h, puis `panic: Unable to create mmap-ed active query
# log` en boucle. Un redémarrage de conteneur ne démonte PAS le volume.
#
# Même mécanisme que MinIO (#50). La préférence pour pi3 n'est pas
# décorative : avec `Recreate`, un pod recréé sur le MÊME nœud peut
# réutiliser le montage de staging encore en place (le nouveau pod arrive
# dès que l'ancien est terminal, avant le démontage) — et donc le montage
# mort. Un autre nœud force détachement, rattachement et rejeu du journal.
# ---------------------------------------------------------------
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: NotIn
values: [pi2]
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: kubernetes.io/hostname
operator: In
values: [pi3]
## Pod anti-affinity can prevent the scheduler from placing Prometheus server replicas on the same node.
## The value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.