Files
2026-10-19 19:14:55 +02:00

92 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Projektkarte knaster
Stand 19.10.2026. Was wo läuft, wie man es erreicht und wo es im Repo steht. Bei jeder Änderung an Adressen,
Diensten oder Ports mitpflegen (siehe [AGENTS.md](AGENTS.md)). Bekannte Probleme: [known-issues.md](known-issues.md).
## Netz
Flaches Netz `192.168.100.0/24`, Gateway `.1`, DNS und DHCP auf dem DC `.120` (verwaltet vom DC-Support, nicht von uns).
Feste Adressen: Knoten, ops und infra statisch konfiguriert; GPU-VMs und k3s-VM per DHCP (Reservierungen Task 0.2).
## Rechner und Gäste
| Name | Art | Adresse | Feste Adresse | Rolle |
|---|---|---|---|---|
| pve44 | Proxmox-Knoten | .210 | statisch + Reservierung | GPU-Knoten (M4000 + P2000), Heimat von infra |
| pve46 | Proxmox-Knoten | .209 | statisch, keine Reservierung möglich | GPU-Knoten (M4000 + P2000), Heimat von ops |
| pve48 | Proxmox-Knoten | .212 | statisch, keine Reservierung möglich | GPU-Knoten (M4000 + P2000), Heimat der k3s-VM |
| pve52 | Proxmox-Knoten | .207 | statisch + Reservierung | GPU-Knoten (nur M4000) |
| pve61 | Proxmox-Knoten (Surface) | .214 | statisch | Quorum, später Kiosk (Task 5.3), kein `tank` |
| ops | LXC 100 auf pve46 | .173 | statisch | Steuerrechner/Bastion: kubectl, Ansible, tofu, Repo-Clone |
| infra | LXC 101 auf pve44 (HA) | .188 | statisch, keine Reservierung möglich | Monitoring und Router (Compose-Stack `knaster-infra`) |
| k3s | VM 110 auf pve48 (HA) | .124 | DHCP | k3s-Steuerung, Portainer CE, kube-state-metrics |
| gpu-pve44 | VM 244 | .186 | DHCP | k3s-Agent; llama.cpp Embedding + Rerank (P2000) |
| gpu-pve46 | VM 246 | .178 | DHCP | k3s-Agent; llama.cpp Embedding + Rerank (P2000) |
| gpu-pve48 | VM 248 | .183 | DHCP | k3s-Agent; llama.cpp Chat (P2000) |
| gpu-pve52 | VM 252 | .174 | DHCP + Reservierung | k3s-Agent; NEX-Sprachdienste (M4000) |
| appsrv08 | fremder Server | .29 | – | NEX-Produktion, LiteLLM (D4), Portainer EE, nex-admin, Traefik |
| Admin-Laptop | – | .151 (WLAN), .181 (Dock) | Reservierung | Arbeitsplatz von r.rapp |
## Dienste und Ports
| Dienst | Wo | Adresse | Zugang |
|---|---|---|---|
| Proxmox-Weboberfläche | jeder Knoten | `https://<knoten>:8006` | persönliches Konto + TOTP, nur Adressen aus `firewall.management` |
| Grafana | infra | `http://192.168.100.188:3000` | `admin`, `kiosk` (Viewer); Dashboards: Übersicht, Proxmox, Knoten, GPU, k3s – Pods |
| Prometheus / Alertmanager | infra | `:9090` / `:9093` | ohne Anmeldung, nur LAN |
| knaster-Router | infra | `:8080` | Bearer-Token (Dry-Run) |
| TTS (Piper, knaster) | infra | `:8090` | – |
| k3s-API | k3s | `https://192.168.100.124:6443` | kubeconfig nur auf ops; nex-admin mit eigenem Token (nur Namespace `nex`) |
| Portainer CE | k3s | `https://192.168.100.124:30779` | Portainer-Konten (Datenbank von appsrv08 übernommen) |
| Portainer-Agent | jeder k3s-Knoten | `:30778` | für Portainer |
| SearXNG (NEX) | jeder k3s-Knoten | `:30880` | – |
| kube-state-metrics | jeder k3s-Knoten | `:30808` | für Prometheus |
| RustDesk hbbs/hbbr | jeder k3s-Knoten | `:21115–21119` | Clients zeigen noch auf `.29` |
| llama.cpp Embedding / Rerank | gpu-pve44, gpu-pve46 | `:8081` / `:8082` | LAN (ufw) |
| llama.cpp Chat (verifier-small) | gpu-pve48 | `:8080` | LAN (ufw) |
| NEX STT (whisper.cpp) / TTS (Piper) | gpu-pve52 | `:8178` / `:8179` | nur von appsrv08 (ufw) |
| node_exporter / nvidia_gpu_exporter | jede GPU-VM | `:9100` / `:9835` | LAN |
| kubelet | jeder k3s-Knoten | `:10250` | Token `prometheus-infra` |
## k3s-Namespaces
| Namespace | Inhalt | Ausgerollt mit |
|---|---|---|
| `kube-system` | k3s-Grundlagen, metrics-server, NVIDIA Device Plugin (nur M4000), kube-state-metrics | `playbooks/k3s.yml`, `playbooks/monitoring-k3s.yml` |
| `knaster` | llama.cpp je GPU-VM (`llamacpp-<vm>`) | `playbooks/gpu-llamacpp-k3s.yml` |
| `nex` | NEX-Agenten (von nex-admin), nex-stt, nex-tts, nex-searxng, Brücke zu appsrv08 | nex-admin, `playbooks/nex-k3s.yml`, `nex-speech-k3s.yml`, `nex-searxng-k3s.yml` |
| `portainer`, `portainer-ce` | Portainer-Agent, Portainer CE | `playbooks/k3s.yml`, `playbooks/portainer-k3s.yml` |
| `rustdesk` | RustDesk-Server | `playbooks/rustdesk-k3s.yml` |
## Repo
| Pfad | Inhalt |
|---|---|
| `AGENTS.md`, `project-map.md`, `known-issues.md` | Einstieg für Agenten und neue Admins |
| `docs/superpowers/plans/2026-10-12-aufbau-cluster-knaster.md` | Aufbauplan mit Stand je Task |
| `docs/BETRIEB.md` | Betriebshandbuch (Monitoring §7, Zugang §8, Firewall §10, k3s §14, Übergabe §15) |
| `docs/ANMELDUNG.md` | Anmeldung und Vertretung (Password Depot) |
| `docs/NOTFALL-ADMIN-UEBERGABE.md` | Notfall-Übergabe der Verwaltung an eine andere Person (für die Geschäftsführung) |
| `docs/PLAN.md`, `docs/adr/`, `docs/spec/` | Architektur, Entscheidungen, Spezifikationen |
| `sites/knaster/proxmox.yaml` | Zielbild: Knoten, GPUs, VMs, LXC, Zugang, Firewall |
| `sites/knaster/registry.yaml`, `catalog/` | Slots (Modelle je Rolle) und Modellkatalog |
| `config/` | Policy, Healer-Regeln, Lifecycle |
| `core/` | Python-Paket `knaster` (Router, Healer, Canary, Inventar) und Tests |
| `deploy/k8s/` | Manifeste für k3s (Übersicht: `deploy/k8s/README.md`) |
| `deploy/compose/` | Compose-Stacks (infra aktiv; gpu-llamacpp, nex-speech nur noch Rückweg) |
| `deploy/prometheus/`, `deploy/alertmanager/`, `deploy/grafana/` | Monitoring-Konfiguration für infra |
| `platform/proxmox/tofu/` | VMs und LXC (OpenTofu, `bpg/proxmox`) |
| `platform/proxmox/ansible/` | Rollen und Playbooks (laufen auf ops) |
| `platform/proxmox/scripts/` | Bootstrap, Healthcheck, Zugang auffrischen, Monitoring-Ziele, Admin-Konto |
| `n8n/workflows/` | n8n-Workflows (inaktiv importieren) |
## Geheimnisse (nur Orte, nie Inhalte)
| Was | Wo |
|---|---|
| Proxmox-Admin-Passwort, TOTP, root-Passwörter | Password Depot; Kopie Passwörter auf dem Admin-Laptop `it/proxmox/.env` |
| SSH-Schlüssel Laptop | Admin-Laptop `it/proxmox/keys/` |
| tofu-, pve-exporter-, Healer-Token, k3s-Token, nex-admin-Token, Prometheus-Token, k3s-CA, Gitea-Registry | ops `/root/.config/knaster/` |
| Postgres, Router-Token, Grafana-Passwörter, Kopien der Exporter-/k3s-Zugänge | infra `/opt/knaster/infra/.env`, `/opt/knaster/infra/secrets/` |
| kubeconfig | ops `/root/.kube/config` |