docs: cluster.md — procédures allumage/extinction détaillées

Ajout des procédures pas-à-pas pour démarrer/éteindre avec et sans k8s.
Note sur WOL compute nodes (BIOS non configuré → allumage manuel).
Mise à jour section aliases → fonctions bash avec support --k8s.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
alkatrazz 2026-05-13 15:11:47 +02:00
parent 763b29495e
commit 0c89d262d1

View file

@ -1,7 +1,7 @@
# Gestion du cluster Funk
Script central : `/usr/local/bin/funk-cluster` sur storage-01.
Aliases locaux configurés dans `~/.bashrc` du poste perso.
Fonctions bash configurées dans `~/.bashrc` du poste perso.
---
@ -20,6 +20,52 @@ funk-stop --k8s # Idem + éteint le cluster k8s avant
---
## Procédures d'utilisation
### Allumer le homelab (sans k8s)
1. **Allumer storage-01 et gpu-01 manuellement** (bouton physique)
2. Attendre ~30s que storage-01 boot
3. Depuis le poste perso :
```bash
funk-start
```
4. Le script démarre les services et attend que gpu-01 soit prêt (~3 min pour les modèles LLM)
5. Vérifier l'état :
```bash
funk-status
```
### Allumer le homelab complet (avec k8s)
1. **Allumer storage-01 et gpu-01 manuellement**
2. Lancer le démarrage :
```bash
funk-start --k8s
```
3. Le script envoie des paquets WOL aux compute nodes — **si WOL non configuré dans le BIOS, allumer compute-01/02/03 manuellement pendant l'attente ping** (~30s de fenêtre)
4. Le script attend automatiquement que les nœuds k8s soient `Ready` (3 min max)
> WOL sur les compute nodes nécessite `Wake on LAN` activé dans le BIOS (Gigabyte : `Advanced → ACPI Settings`). Tant que ce n'est pas configuré, allumage manuel requis.
### Éteindre le homelab (sans k8s)
```bash
funk-stop
```
La connexion SSH se coupe à la fin (storage-01 s'éteint lui-même). C'est normal.
### Éteindre le homelab complet (avec k8s)
```bash
funk-stop --k8s
```
Ordre d'arrêt automatique : hermes-agent + litellm → talosctl shutdown compute-01/02/03 → gpu-01 → qdrant + postgresql → storage-01.
---
## Ce que fait chaque commande
### `funk-status`
@ -61,22 +107,16 @@ Vérifie dans l'ordre :
---
## Aliases locaux (`~/.bashrc` poste perso)
## Fonctions bash (`~/.bashrc` poste perso)
```bash
funk-start() { ssh storage-01 "sudo /usr/local/bin/funk-cluster start $*"; }
funk-stop() { ssh storage-01 "sudo /usr/local/bin/funk-cluster stop $*"; }
alias funk-status='ssh storage-01 "sudo /usr/local/bin/funk-cluster status"'
alias funk-start='ssh storage-01 "sudo /usr/local/bin/funk-cluster start"'
alias funk-stop='ssh storage-01 "sudo /usr/local/bin/funk-cluster stop"'
alias funk-pull='ssh storage-01 "sudo -u ansible git -C /srv/data/lab pull"'
```
Pour passer `--k8s` :
```bash
ssh storage-01 "sudo /usr/local/bin/funk-cluster stop --k8s"
ssh storage-01 "sudo /usr/local/bin/funk-cluster start --k8s"
```
> **Note** : les aliases `funk-start`/`funk-stop` ne passent pas les arguments.
> Utiliser la commande SSH directe pour `--k8s`.
Les fonctions bash transmettent les arguments — `funk-start --k8s` et `funk-stop --k8s` fonctionnent directement.
---
@ -98,6 +138,7 @@ ssh s01 "sudo cp /tmp/funk-cluster /usr/local/bin/funk-cluster && sudo chmod +x
|---|---|
| Ordre d'arrêt | Hermes/LiteLLM → k8s (optionnel) → gpu-01 → Qdrant/PG → storage-01 |
| Ordre de démarrage | storage-01 (toujours déjà up) → gpu-01 → k8s (optionnel) |
| WOL compute nodes | BIOS non configuré → allumer manuellement pendant l'attente ping de `funk-start --k8s` |
| LiteLLM bloquant | `systemctl stop --timeout=10` + SIGKILL automatique si timeout |
| talosctl path | `/home/ansible/.config/talos/config` requis explicitement (sudo change HOME) |
| `--k8s` non passé par alias | Utiliser `ssh s01 "sudo funk-cluster stop --k8s"` directement |
| SSH coupée à l'arrêt | Normal — storage-01 s'éteint lui-même en fin de `funk-stop` |