mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 10:44:42 +02:00
docs: progression 2026-05-14 + désignore progress/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e17396a150
commit
24c0bf9e12
9 changed files with 1093 additions and 2 deletions
122
progress/2026-05-12.md
Normal file
122
progress/2026-05-12.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue