mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 20:54:43 +02:00
* fix(rag): ubatch=2048 pour llama-embed + retry rag-ingest + nettoie defaults rag L'instance llama-embed (:1238) tournait avec l'ubatch llama.cpp par défaut (512). En mode --embeddings + pooling, toute l'entrée doit tenir dans un seul ubatch → tout chunk > 512 tokens échouait en HTTP 500 « input too large to process. increase the physical batch size ». ~46 chunks du RAG (CHUNK_MAX=2000 chars ≈ 700 tokens) n'étaient pas indexés. - llama_server : ajoute llama_embed_ubatch_size (2048 = ctx) + flags --batch-size/--ubatch-size dans le template llama-embed.service. - rag-ingest : retry (5×, backoff) sur erreurs transitoires 5xx/réseau de l'embed. - rag/defaults : aligne embed_url/embed_model sur nomic :1238 (étaient des vars mortes pointant encore qwen3-8b :1234 — trompeuses). Résultat : ré-ingestion 436/436 chunks, 0 erreur. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs(cluster): aligne la doc sur l'état réel (relevé 2026-06-21) + snapshot Passe de vérification terrain (SSH s01/g01 + kubectl) pour corriger les écarts doc↔réalité, et ajout d'un document de référence vérifié. - admin/ops/etat-cluster.md (nouveau) : snapshot daté — machines, services+ports par hôte, workloads k8s, namespaces, IngressRoute, bases PG, modèles LiteLLM, RAG/Qdrant, + procédure pour régénérer le relevé. - OS AlmaLinux 9.7 → 9.8 (s01/g01) ; précise k8s v1.33.1 (CLAUDE/README/install/talos). - RAG funk-docs : retire le warning périmé « supprimée 2026-06-17 / à re-ingérer » → reconstruite (436 chunks, nomic-embed-text :1238 dim 768, CPU). Maj rag.md, incidents.md, stt.md. - Namespace sacrifice (hors-repo, hors ArgoCD) + bases PG grafana/sacrifice + services ai via IngressRoute + registry in-cluster (CLAUDE.md, k9s.md). - Services de résilience (llm-heartbeat, llama-watchdog/embed) et instances CPU manuelles :1236/:1237 (souvent éteintes) documentés. - Journal progress/2026-06-21.md : section relevé + RAG. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
210 lines
5.6 KiB
Markdown
210 lines
5.6 KiB
Markdown
# k9s — TUI Kubernetes
|
|
|
|
k9s est une interface terminal interactive pour administrer le cluster Kubernetes.
|
|
Il remplace la plupart des commandes `kubectl get/describe/logs/exec` par une navigation clavier.
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
### Poste perso et storage-01 (v0.50.18)
|
|
|
|
```bash
|
|
curl -Lo /tmp/k9s.tar.gz \
|
|
https://github.com/derailed/k9s/releases/download/v0.50.18/k9s_Linux_amd64.tar.gz
|
|
tar -xzf /tmp/k9s.tar.gz -C /tmp k9s
|
|
sudo mv /tmp/k9s /usr/local/bin/k9s
|
|
sudo chmod +x /usr/local/bin/k9s
|
|
k9s version
|
|
```
|
|
|
|
> Pour une version plus récente : `https://github.com/derailed/k9s/releases/latest`
|
|
|
|
### Sur storage-01 depuis le poste perso
|
|
|
|
```bash
|
|
ssh storage-01 "curl -sLo /tmp/k9s.tar.gz \
|
|
https://github.com/derailed/k9s/releases/download/v0.50.18/k9s_Linux_amd64.tar.gz && \
|
|
tar -xzf /tmp/k9s.tar.gz -C /tmp k9s && \
|
|
sudo mv /tmp/k9s /usr/local/bin/k9s && \
|
|
sudo chmod +x /usr/local/bin/k9s"
|
|
```
|
|
|
|
---
|
|
|
|
## Configuration
|
|
|
|
### Kubeconfig
|
|
|
|
k9s lit `~/.kube/config` — le même que `kubectl`.
|
|
Le kubeconfig Funk est généré depuis talhelper et pointe sur `https://192.168.10.11:6443`.
|
|
|
|
```bash
|
|
# Vérifier le contexte actif
|
|
kubectl config get-contexts
|
|
|
|
# Contexte attendu : admin@funk
|
|
```
|
|
|
|
### Forcer tous les namespaces par défaut
|
|
|
|
k9s mémorise le namespace par contexte dans `~/.local/share/k9s/clusters/funk/admin@funk/config.yaml`.
|
|
Après le premier lancement, corriger ce fichier pour éviter de toujours démarrer sur `default` :
|
|
|
|
```yaml
|
|
k9s:
|
|
namespace:
|
|
active: all
|
|
favorites:
|
|
- all
|
|
view:
|
|
active: v1/pods all
|
|
```
|
|
|
|
### Lancer k9s sur storage-01 depuis le poste perso
|
|
|
|
```bash
|
|
ssh -t storage-01 k9s # -t obligatoire pour allouer un TTY (TUI)
|
|
```
|
|
|
|
---
|
|
|
|
## Namespaces du cluster Funk
|
|
|
|
| Namespace | Contenu |
|
|
|---|---|
|
|
| `monitoring` | Prometheus, Grafana, AlertManager |
|
|
| `ai` | Open WebUI, n8n, **STT-server**, **Ghostfolio** (+ Redis) |
|
|
| `infra` | Traefik, MetalLB, NFS provisioner, **registry** in-cluster |
|
|
| `argocd` | ArgoCD (GitOps) |
|
|
| `metallb-system` | MetalLB (controller + speakers) |
|
|
| `nfs-provisioner` | nfs-subdir-external-provisioner |
|
|
| `sacrifice` | Jeu FPS Sacrifice (web + CronJob) — **hors repo Funk-lab, hors ArgoCD** |
|
|
| `kube-system` | Composants Kubernetes internes |
|
|
|
|
---
|
|
|
|
## Navigation — raccourcis essentiels
|
|
|
|
### Général
|
|
|
|
| Touche | Action |
|
|
|---|---|
|
|
| `0` | Tous les namespaces |
|
|
| `1`, `2`... | Namespace favori N |
|
|
| `:` | Ouvrir la ligne de commande (changer de ressource) |
|
|
| `/` | Filtrer la liste (regex supporté) |
|
|
| `Esc` | Retour / annuler |
|
|
| `?` | Aide complète (tous les raccourcis) |
|
|
| `ctrl+c` | Quitter k9s |
|
|
|
|
### Ressources courantes (taper `:` puis le nom)
|
|
|
|
| Commande | Ressource affichée |
|
|
|---|---|
|
|
| `:pod` | Pods |
|
|
| `:deploy` | Deployments |
|
|
| `:svc` | Services |
|
|
| `:ing` | Ingress |
|
|
| `:pvc` | PersistentVolumeClaims |
|
|
| `:ns` | Namespaces |
|
|
| `:node` | Nœuds du cluster |
|
|
| `:secret` | Secrets |
|
|
| `:cm` | ConfigMaps |
|
|
| `:event` | Events (utile pour debug) |
|
|
| `:cj` | CronJobs |
|
|
| `:job` | Jobs |
|
|
|
|
### Actions sur une ressource sélectionnée
|
|
|
|
| Touche | Action |
|
|
|---|---|
|
|
| `Entrée` | Descendre dans la ressource (pod → containers) |
|
|
| `l` | Logs du pod/container |
|
|
| `d` | Describe (équivalent `kubectl describe`) |
|
|
| `e` | Éditer le YAML en live |
|
|
| `y` | Afficher le YAML complet |
|
|
| `s` | Shell interactif dans le container (`exec -it`) |
|
|
| `ctrl+d` | Supprimer la ressource |
|
|
| `ctrl+k` | Kill (suppression forcée) |
|
|
| `r` | Restart le déploiement (`rollout restart`) |
|
|
|
|
### Logs
|
|
|
|
| Touche | Action |
|
|
|---|---|
|
|
| `l` | Logs du container sélectionné |
|
|
| `ctrl+s` | Sauvegarder les logs dans un fichier |
|
|
| `w` | Activer/désactiver le retour à la ligne |
|
|
| `t` | Afficher/masquer les timestamps |
|
|
| `0` | Charger tous les logs (pas seulement les 100 dernières lignes) |
|
|
|
|
---
|
|
|
|
## Cas d'usage fréquents
|
|
|
|
### Voir l'état des pods en direct
|
|
|
|
Lancer k9s → appuyer sur `0` → vue de tous les pods avec état en temps réel.
|
|
Les pods `CrashLoopBackOff` ou `Pending` apparaissent en rouge.
|
|
|
|
### Lire les logs d'un pod
|
|
|
|
```
|
|
:pod → sélectionner le pod → l
|
|
```
|
|
|
|
Pour suivre les logs en continu : ils se rafraîchissent automatiquement.
|
|
|
|
### Débugger un pod en erreur
|
|
|
|
```
|
|
:pod → sélectionner le pod → d (describe — voir Events en bas)
|
|
:event → filtrer par nom du pod (voir la raison du crash)
|
|
```
|
|
|
|
### Redémarrer un déploiement
|
|
|
|
```
|
|
:deploy → sélectionner → r
|
|
```
|
|
|
|
### Exécuter un shell dans un pod
|
|
|
|
```
|
|
:pod → sélectionner → s → choisir le container
|
|
```
|
|
|
|
### Voir la consommation CPU/RAM des nœuds
|
|
|
|
```
|
|
:node → les colonnes CPU% et MEM% sont affichées en temps réel
|
|
```
|
|
|
|
### Surveiller les PVC (stockage NFS)
|
|
|
|
```
|
|
:pvc → vérifier que tous sont Bound (sinon : Pending = problème NFS provisioner)
|
|
```
|
|
|
|
---
|
|
|
|
## Dépannage
|
|
|
|
| Symptôme | Cause | Action |
|
|
|---|---|---|
|
|
| "No resources found in default namespace" | k9s démarre sur le mauvais namespace | Appuyer sur `0` ou corriger `~/.local/share/k9s/clusters/funk/admin@funk/config.yaml` |
|
|
| Pas de connexion au cluster | kubeconfig absent ou cluster éteint | `kubectl get nodes` pour diagnostiquer ; `funk-start` si le cluster est éteint |
|
|
| Shell (`s`) ne fonctionne pas | Pod sans shell ou image distroless | Utiliser `kubectl debug` à la place |
|
|
| k9s freeze sur storage-01 | Pas de TTY alloué | Toujours lancer avec `ssh -t storage-01 k9s` |
|
|
|
|
---
|
|
|
|
## Fichiers de configuration
|
|
|
|
| Fichier | Rôle |
|
|
|---|---|
|
|
| `~/.kube/config` | Kubeconfig — adresse cluster + certificats |
|
|
| `~/.config/k9s/config.yaml` | Config globale k9s (refresh rate, seuils CPU/RAM...) |
|
|
| `~/.config/k9s/aliases.yaml` | Alias de ressources personnalisés |
|
|
| `~/.local/share/k9s/clusters/funk/admin@funk/config.yaml` | Namespace et vue actifs par contexte |
|