docs: progression 2026-05-14 + désignore progress/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-14 22:28:10 +02:00
parent e17396a150
commit 24c0bf9e12
9 changed files with 1093 additions and 2 deletions

122
progress/2026-05-12.md Normal file
View file

@ -0,0 +1,122 @@
# 2026-05-12 — Kubernetes (Flannel fix, MetalLB, Traefik, DNS) + Architecture multi-modèles
## Résumé
Cluster Kubernetes opérationnel : correction du crash Flannel, déploiement MetalLB L2 +
Traefik + wildcard DNS `*.lab.local`. Mise en place de l'architecture multi-modèles sur
gpu-01 : 1 instance GPU + 2 instances CPU avec isolation CPUAffinity/MemoryMax.
Création des 5 profils Hermes. Documentation complète admin/install/.
---
## Flannel CrashLoopBackOff
**Symptôme** : 2 pods flannel en `CrashLoopBackOff` dans kube-system.
**Cause** : Le `ClusterRoleBinding flannel` pointait vers le namespace `kube-flannel`
(supprimé) au lieu de `kube-system`.
**Fix** :
```bash
kubectl patch clusterrolebinding flannel --type='json' \
-p='[{"op":"replace","path":"/subjects/0/namespace","value":"kube-system"}]'
```
---
## MetalLB + Traefik + DNS wildcard
- MetalLB L2 mode : pool `192.168.10.200-230`
- Traefik : `loadBalancerIP: 192.168.10.200`, helm `logs.general.level=INFO`
(pas `log.level` — paramètre invalide → rollback helm)
- dnsmasq wildcard : `address=/.lab.local/192.168.10.200`
→ toutes les entrées `*.lab.local` résolvent vers Traefik
---
## Architecture multi-modèles gpu-01
### Instances llama-server
| Service | Port | Modèle | Infra | Isolation |
|---|---|---|---|---|
| `llama-server` | 1234 | Qwen3-8B Q4_K_M | GPU RX 6700XT | ROCm |
| `llama-server-system` | 1236 | Qwen3-1.7B Q4_K_M | CPUs 0-6,16-22 | 6G RAM |
| `llama-server-monitor` | 1237 | Qwen3-1.7B Q4_K_M | CPUs 7-13,23-29 | 6G RAM |
GPU = RX 6700XT 12 GB VRAM, CPU = Ryzen 9 5950X 16c/32t (32 GB RAM)
### Masquage GPU pour les instances CPU
Les instances CPU crashaient en SEGV car ROCm tentait d'initialiser le GPU même
avec `--n-gpu-layers 0` :
```ini
Environment=ROCR_VISIBLE_DEVICES=
Environment=HIP_VISIBLE_DEVICES=-1
```
### Ouverture firewall
```bash
firewall-cmd --permanent --add-port=1235/tcp --add-port=1236/tcp --add-port=1237/tcp
firewall-cmd --reload
```
---
## 5 profils Hermes
Créés avec `HERMES_HOME=/srv/data/hermes hermes profile create <nom>` puis configurés
dans `/srv/data/hermes/profiles/<nom>/config.yaml`.
| Profil | Modèle LiteLLM | Rôle |
|---|---|---|
| `funk-ai` | `qwen3-8b` (GPU) | Principal — par défaut |
| `brain` | `claude-sonnet-4-6` (API) | Analyse complexe |
| `dev` | `qwen2.5-7b-dev` (CPU) | Développement (supprimé en session suivante) |
| `system` | `qwen3-1.7b-system` (CPU) | Tâches système rapides |
| `monitor` | `qwen3-1.7b-monitor` (CPU) | Monitoring rapide |
Tous pointent vers LiteLLM (`http://127.0.0.1:4000/v1`) qui route selon le modèle.
### Problème HERMES_HOME vs HOME
Les profils créés sans `HERMES_HOME` explicite étaient créés dans `/opt/hermes/.hermes/`
(HOME du compte hermes) au lieu de `/srv/data/hermes/` (HERMES_HOME).
**Fix** : Toujours préfixer avec `HERMES_HOME=/srv/data/hermes` pour toutes les commandes hermes.
### Problème contexte 64k minimum
Hermes exige un contexte ≥ 64 000 tokens pour tout modèle. Override via config.yaml :
```yaml
model:
context_length: 65536 # override le check Hermes — llama-server peut rester à 32768
```
### Profil par défaut
```bash
HERMES_HOME=/srv/data/hermes hermes profile use funk-ai
```
---
## Documentation créée
| Fichier | Contenu |
|---|---|
| `admin/install/storage-01.md` | Guide complet installation AlmaLinux → RAID5 → 8 phases Ansible |
| `admin/install/gpu-01.md` | AlmaLinux → ROCm → NFS → llama-server |
| `admin/install/kubernetes.md` | Talos → talhelper → MetalLB → Traefik → DNS wildcard |
| `admin/install/README.md` | Index + ordre d'installation |
| `admin/README.md` | Refonte — 2 sections : guides install vs référence opérationnelle |
---
## État final
- Cluster k8s : Flannel OK, MetalLB OK, Traefik OK, DNS wildcard OK
- gpu-01 : 3 instances llama-server (GPU + 2 CPU)
- LiteLLM : 5 modèles routés (qwen3-8b, qwen3-1.7b-system/monitor, claude-sonnet/opus)
- Hermes : 5 profils créés, `funk-ai` par défaut