KI-Workloads auf Kubernetes und Talos
Scheduling, Ressourcenlimits, Model Serving und Observability für LLM- und agentische Workloads auf einer immutablen Linux-Plattform.
Geprüft vom UHL-Team ·
KI-Workloads sind gewöhnliche Workloads - fast
Ein LLM-Endpoint, eine Vektordatenbank, eine Agenten-Laufzeit: alles Pods mit CPU, Speicher und Storage. Der Unterschied liegt in der kurzzeitig hohen Last (ein Agent kann Minuten Denkzeit pro Anfrage verbrennen), der Zustandsabhängigkeit (Gedächtnisgraphen und Indizes sind wertvoll) und der Kostenkonzentration (ein Modelserver kann schwerer wiegen als alle anderen Dienste zusammen). Die Plattformantworten sind die bekannten - mit schärferem Augenmerk angewandt.
Scheduling und Ressourcenlimits
- Definieren Sie CPU- und Speicher-Requests und -Limits bewusst. Speicher- und CPU-Limits wirken unterschiedlich. Prüfen Sie Sättigung und Auswirkungen auf benachbarte Workloads.
- Agenten-Laufzeiten von Model Serving trennen - Agenten skalieren mit Anfragerate, Modelle mit VRAM/RAM; vermischt werden beide unschedulbar
- Node-Pools oder Labels für Schwergewichte nutzen - speicherhungrige Pods auf geeignete Knoten pinnen vermeidet stille Pending-Zustände
- Realistische Probes setzen - Modell-Kaltstarts dauern Sekunden; eine Startup-Probe, die zu früh aufgibt, erzeugt Restart-Schleifen, die wie Abstürze aussehen
Talos nutzt ein API-verwaltetes Betriebssystemmodell. Das verändert die Host-Verwaltung, ersetzt aber keine Kontrollen für Anwendungskonfiguration, RBAC, Netzwerkrichtlinien und Wiederherstellung. Unveränderlichkeit allein verhindert keine Abweichungen in Kubernetes-Ressourcen.
Model-Serving-Muster, die sich bewähren
- Embeddings und Retrieval zuerst
Beginnen Sie mit Embedding-Endpoints und einem Vector Store - sie liefern private Suche und RAG zu moderatem Preis und vermitteln die Betriebsmuster, bevor grössere Modelle kommen.
- Kleine Modelle hinter stabiler API
Bedienen Sie Modelle über ein internes Gateway, damit Konsumenten nie den Modellnamen kennen. Ein Backend-Tausch wird so zu einem Deployment statt zu einem Refactoring.
- Persistenten Kontext in eine Wissensschicht
Halten Sie persistenten Kontext in einem eigenen Dienst wie Cognee mit klaren Zugriffskontrollen, Backups und Aufbewahrung. Ein gemeinsamer Wissensdienst darf vertraulichen Projektkontext nicht anderen Projekten offenlegen.
- GPU erst bei gemessenem Bedarf
GPU-Knoten kommen, wenn Latenz oder Wartezeiten den Bedarf beweisen - nicht vorher. Pool labeln, bei Mischbetrieb mit Taints isolieren und als Plattform-Posten budgetieren.
Observability für agentische Arbeit
- Erfassen Sie Anfrageergebnisse und autorisierte Werkzeugaktionen mit Korrelations-ID. Protokollieren Sie standardmässig keine rohen Prompts, Kundendaten oder Geheimnisse.
- Tokens, Latenz und Queue-Tiefe pro Modell verfolgen - Kostenüberraschungen kommen über diese Kanäle
- Wachstum der Gedächtnisschicht selbst beobachten - Graphen und Indizes wachsen; Retention braucht einen Verantwortlichen
- Auf Drift zwischen Git und Cluster alarmieren - GitOps macht 'wer hat was geändert' zur beantworteten Frage
- KI-Dienste in dieselben Dashboards und Runbooks wie alles andere aufnehmen - separates Tooling verrottet
Betriebskontext: Plattform und Modell getrennt betrachten
UHL beschreibt die Talos-Praxis und Kubernetes-Leistungen öffentlich. Das Diagramm ist eine Referenztopologie und weder Benchmark noch Zusage, dass jede Modellgrösse auf die aktuelle Plattform passt. Dimensionierung und Abnahme müssen am vorgesehenen Workload gemessen werden.
Abnahmeblatt für den Workload
- Nachfrage
Erfassen Sie Modell und Version, Kontextlänge, erwartete parallele Anfragen, Anfragegrösse, Ziel-Latenz und zulässigen eingeschränkten Betrieb.
- Platzierung und Kapazität
Dokumentieren Sie CPU, Speicher, Beschleunigerbedarf, Node-Auswahl, Datenwachstum und Startverhalten. Prüfen Sie Verdrängung und Speicherüberschreitung auf Staging.
- Wiederherstellung und Freigabe
Benennen Sie persistente Daten, Wiederherstellungsziel, Backup-Verantwortung und Rücknahmeverfahren. Testen Sie eine Wiederherstellung und erfassen Sie das Ergebnis vor Zeitversprechen.
Abnahme und weiterführende Quellen
- Der Lasttest bildet vorgesehene Anfragen und Parallelität ab.
- Startup-, Readiness- und Liveness-Probes entsprechen dem tatsächlichen Modellverhalten.
- Monitoring erfasst Latenz, Fehler, Warteschlange und Auslastung ohne sensible Prompts zu protokollieren.
- Kubernetes-Ressourcenverwaltung erklärt Requests und Limits.
- Die Talos-Linux-Dokumentation beschreibt das Verwaltungsmodell des Betriebssystems.
Mit UHL chatten
Starten Sie einen geführten Chat. Der Assistent stellt ein paar Fragen und speichert Ihre Anfrage zur Prüfung durch unser Team.