Prometheus quitte pi1 pour pi3 : son volume y avait perdu son journal ext4 le même jour que MinIO
Helm Charts / Detect changed charts (pull_request) Successful in 1m46s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Skipped
Helm Charts / Application charts chart (pull_request) Skipped
Helm Charts / Application charts crowdsec (pull_request) Skipped
Helm Charts / Application charts grafana (pull_request) Skipped
Helm Charts / Application charts hashicorp-vault (pull_request) Skipped
Helm Charts / Application charts loki (pull_request) Skipped
Helm Charts / Application charts minio (pull_request) Skipped
Helm Charts / Application charts pgbouncer (pull_request) Skipped
Helm Charts / Application charts pgcat (pull_request) Skipped
Helm Charts / Application charts redis (pull_request) Skipped
Helm Charts / Application charts prometheus (pull_request) Successful in 29s
Helm Charts / Detect changed charts (pull_request) Successful in 1m46s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Skipped
Helm Charts / Application charts chart (pull_request) Skipped
Helm Charts / Application charts crowdsec (pull_request) Skipped
Helm Charts / Application charts grafana (pull_request) Skipped
Helm Charts / Application charts hashicorp-vault (pull_request) Skipped
Helm Charts / Application charts loki (pull_request) Skipped
Helm Charts / Application charts minio (pull_request) Skipped
Helm Charts / Application charts pgbouncer (pull_request) Skipped
Helm Charts / Application charts pgcat (pull_request) Skipped
Helm Charts / Application charts redis (pull_request) Skipped
Helm Charts / Application charts prometheus (pull_request) Successful in 29s
Le 14/09 à 05:16Z, le volume `prometheus-server` (moteur sur pi1, une réplique sur pi2 saturé en mémoire) a vu ext4 abandonner son journal et remonter en lecture seule. Prometheus a échoué à écrire son WAL pendant 27 h, puis panique en boucle (« Unable to create mmap-ed active query log ») depuis que la sonde de vivacité l'a redémarré. Un redémarrage de conteneur ne démonte pas le volume. Affinité requise `NotIn [pi2]` et préférence forte pour pi3 : recréé sur un autre nœud, le volume est détaché puis rattaché, et ext4 rejoue son journal. Sur le même nœud, le pod neuf pourrait réutiliser le montage de staging mort. Refs arcodange-org/tools#49 Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
+31
-1
@@ -493,7 +493,37 @@ prometheus: &prometheus_config
|
|||||||
|
|
||||||
## Pod affinity
|
## 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.
|
## 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.
|
## The value "soft" means that the scheduler should *prefer* to not schedule two replica pods onto the same node but no guarantee is provided.
|
||||||
|
|||||||
Reference in New Issue
Block a user