fix(pi2) — Gitea et Postgres avaient zéro plafond, plus maintenant

pi2 tournait à load average ~45 (4 cœurs) pendant qu'un push docker
timeoutait vers le registre. Gitea et Postgres tournent en docker compose
nu, hors k3s — invisibles du scheduler ET sans limite (`docker inspect`
mesurait NanoCPUs=0, Memory=0 pour les deux), donc rien ne les empêchait
de se battre à armes égales avec tout le reste du nœud.

Postgres → 1 CPU / 1024M, Gitea → 1.5 CPU / 1536M (Compose v2 honore
`deploy.resources.limits` hors swarm). Valeurs dérivées d'une mesure au
repos (Postgres 3-5 %, Gitea 12 % CPU) avec de la marge pour les pics —
un filet, pas un dimensionnement pour la charge normale.

Appliqué et vérifié en direct sur pi2 : les deux conteneurs ont recréé
avec les nouvelles limites (`docker inspect` confirme), PostGIS survit
au recreate de Postgres (déjà géré par ce playbook), Gitea sert web (200)
et registre (401 attendu, anonyme) normalement après coup.

Le levier complémentaire (kubelet --system-reserved/--kube-reserved sur
pi2, pour que le SCHEDULER k8s sache que cette place est déjà prise) n'est
pas dans cette PR — plus gros, touche system_k3s.yml pour tout le cluster.
This commit is contained in:
2026-08-11 16:25:20 +02:00
parent 1520ecac41
commit f250817641
2 changed files with 20 additions and 1 deletions
@@ -59,4 +59,14 @@ gitea:
volumes:
- /home/pi/arcodange/docker_composes/gitea/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /etc/localtime:/etc/localtime:ro
# Gitea tourne sur pi2 hors k3s (docker compose nu) : invisible du
# scheduler k8s et sans plafond jusqu'ici (`docker inspect` mesurait
# NanoCPUs=0, Memory=0). Mesuré à 12 % CPU / 417 Mi au repos — la
# limite est un filet pour les pics (gros push, opérations git
# lourdes), pas un dimensionnement pour la charge normale.
deploy:
resources:
limits:
cpus: "1.5"
memory: 1536M
@@ -19,6 +19,15 @@ postgres:
- "5432:5432"
volumes:
- /home/pi/arcodange/docker_composes/postgres/data:/var/lib/postgresql/data
# Postgres tourne sur pi2 hors k3s (docker compose nu) : invisible du
# scheduler k8s et sans plafond jusqu'ici (`docker inspect` mesurait
# NanoCPUs=0, Memory=0). Mesuré à 3-5 % CPU au repos — la limite est un
# filet, pas un dimensionnement pour la charge normale.
deploy:
resources:
limits:
cpus: "1"
memory: 1024M
pgbouncer:
auth_user: &pgbouncer_auth pgbouncer_auth