From f25081764192231116fd0eef93675e54d4ee369d Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Tue, 11 Aug 2026 16:25:20 +0200 Subject: [PATCH] =?UTF-8?q?fix(pi2)=20=E2=80=94=20Gitea=20et=20Postgres=20?= =?UTF-8?q?avaient=20z=C3=A9ro=20plafond,=20plus=20maintenant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .../factory/inventory/group_vars/gitea/gitea.yml | 12 +++++++++++- .../inventory/group_vars/postgres/postgres.yml | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ansible/arcodange/factory/inventory/group_vars/gitea/gitea.yml b/ansible/arcodange/factory/inventory/group_vars/gitea/gitea.yml index 6b0ac9f..049950b 100644 --- a/ansible/arcodange/factory/inventory/group_vars/gitea/gitea.yml +++ b/ansible/arcodange/factory/inventory/group_vars/gitea/gitea.yml @@ -59,4 +59,14 @@ gitea: volumes: - /home/pi/arcodange/docker_composes/gitea/data:/data - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro \ No newline at end of file + - /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 \ No newline at end of file diff --git a/ansible/arcodange/factory/inventory/group_vars/postgres/postgres.yml b/ansible/arcodange/factory/inventory/group_vars/postgres/postgres.yml index ba2999d..2d3f5a1 100644 --- a/ansible/arcodange/factory/inventory/group_vars/postgres/postgres.yml +++ b/ansible/arcodange/factory/inventory/group_vars/postgres/postgres.yml @@ -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 -- 2.54.0