- Authors

- Name
- Phillip Pham
- @ddppham
Kafka auf Kubernetes: Der Event-Broker für ereignisgesteuerte Architekturen
TL;DR
- Kafka ist die Poststelle Ihrer Microservices. Statt dass Dienste sich direkt gegenseitig anrufen (und dabei warten, crashen oder Daten verlieren), legen sie Ereignisse in Kafka ab — und Kafka liefert sie zuverlässig an alle, die sie brauchen.
- Kafka löst drei klassische Skalierungsprobleme: Tight Coupling (Dienste hängen nicht mehr direkt voneinander ab), synchrones Warten (ein langsamer Dienst blockiert nicht mehr die ganze Kette) und Datenverlust (Kafka persistiert Ereignisse).
- Kafka ist kein Datenbank-Ersatz, sondern der Ereignis-Log — die DB ist der aktuelle Zustand, Kafka der Verlauf der Ereignisse. Beide ergänzen sich.
- Ab Kafka 3.0 übernimmt KRaft die Koordination direkt in Kafka — keine externe Zookeeper-Abhängigkeit mehr.
- Kafka ist leistungsstark, aber anspruchsvoll im Betrieb — Broker-Cluster, Partitioning, Retention, Monitoring und Skalierung brauchen Erfahrung.
Das Problem, das Kafka löst
Die „Domino-Kette" der direkten Aufrufe
Am Beispiel einer E-Commerce-App: Bestellung → Bestand aktualisieren → E-Mail senden → Rechnung → Dashboard. Jeder Dienst ruft den nächsten synchron auf:
- Tight Coupling: Payment-Service down → ganze Bestellung friert ein.
- Single Point of Failure: 10 Minuten Inventory-Ausfall → 2 Stunden Bestell-Backlog.
- Datenverlust: Analytics-Service down → Black-Friday-Daten weg.
Die Lösung: Ereignisse statt Aufrufe
Statt dass Dienste sich direkt anrufen, wird Platz zwischen ihnen geschaffen — ein Broker (Kafka) sitzt in der Mitte. Der Order-Service legt ein Ereignis ab („Bestellung erstellt") und geht weiter. Kafka liefert es an alle Interessierten — asynchron, zuverlässig, verlustfrei.
Die Kafka-Konzepte
| Konzept | Funktion | Analogie |
|---|---|---|
| Producer | erzeugt Ereignisse | Absender |
| Topic | organisiert Ereignisse nach Typ | Postfach/Sektion |
| Consumer | abonniert Topics, reagiert | Empfänger |
| Partition | Aufteilung eines Topics für Skalierung | mehr Arbeiter pro Sektion |
| Consumer Group | mehrere Instanzen teilen sich die Last | Team, das Briefe sortiert |
| Broker | persistiert Ereignisse, repliziert | Postfiliale |
| Stream | kontinuierliche Verarbeitung mit Aggregation | Echtzeit-Analytics |
Die Kaskade: Ein Ereignis löst viele aus
Bestellung → Order-Topic → mehrere Consumer reagieren:
- Notification-Service → E-Mail an Kunden.
- Inventory-Service → Bestand aktualisieren + neues „Inventory"-Ereignis.
- Payment-Service → Rechnung erzeugen.
- Analytics → Dashboard aktualisieren.
Ein Ereignis kann also Kettenreaktionen auslösen (z. B. Low-Stock-Alert → Restock-Service). Genau das macht Kafka zum Rückgrat ereignisgesteuerter Architekturen.
Warum Kafka kein Datenbank-Ersatz ist
Kafka speichert Ereignisse — aber es ersetzt keine Datenbank. Die DB ist der aktuelle Zustand; Kafka ist der Ereignis-Log. Sie ergänzen sich: Der Inventory-Service aktualisiert die DB und schreibt ein Ereignis in Kafka.
| Datenbank | Kafka | |
|---|---|---|
| Was | Aktueller Zustand | Ereignis-Log |
| Lesen | Punktueller Zustand | Verlauf, mehrfach, jederzeit |
| Update | Überschreiben | Append-only |
| Rolle | Source of Truth für Zustand | Source of Truth für Ereignisse |
Der Unterschied zu klassischen Message Brokern
- Klassische Queues: löschen Nachrichten nach Konsum.
- Kafka: persistiert Ereignisse so lange, wie Sie wollen (Retention-Policy). Consumer können sie jederzeit und mehrfach lesen.
Analogie: Netflix (on demand — jeder schaut, wann er will) vs. Fernsehen (jeder muss zur gleichen Zeit einschalten). Kafka ist Netflix.
Kafka auf Kubernetes betreiben
Kafka ist leistungsstark — aber anspruchsvoll im Betrieb. Auf Kubernetes kommt der Betrieb der Broker-Cluster dazu:
StatefulSets & persistente Volumes
Kafka ist ein stateful Workload: Jeder Broker braucht persistenten Speicher. Auf Kubernetes wird Kafka deshalb als StatefulSet mit Persistent Volumes betrieben — der gleiche Baustein, der auch MySQL, WordPress und moderne KI-Plattformen trägt.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kafka
spec:
serviceName: kafka
replicas: 3
selector:
matchLabels:
app: kafka
template:
metadata:
labels:
app: kafka
spec:
containers:
- name: kafka
image: apache/kafka:3.7
env:
- name: KAFKA_BROKER_ID
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ['ReadWriteOnce']
resources:
requests:
storage: 100Gi
Was professioneller Kafka-Betrieb umfasst
| Bereich | Aufgabe |
|---|---|
| Cluster-Design | Partitioning-Strategie, Replication, Retention-Policies |
| Betrieb | Monitoring, Upgrades, Failover, Sicherheit |
| Lifecycle | StatefulSets, persistente Volumes, ordentliche Broker-Verwaltung |
| Daten-Pipelines | Kafka als Fundament für Event-getriebene Architekturen, Echtzeit-Analytics |
Der Bezug zu KI
Kafka ist ideal für Echtzeit-Daten-Feeds für KI: Agent-Events, LLM-Traffic-Analysen, Streaming-Anomalie-Erkennung. Die gleiche Plattform, die Bestellungen verarbeitet, kann Ereignis-Ströme für KI-Modelle liefern — betrieben auf derselben Kubernetes-Basis.
Lessons Learned & Risiken (ehrlich)
- Kafka ist kein „einfacher Message Broker": Partitioning, Retention und Streams wollen durchdacht sein — Schema-Design ist Architektur-Arbeit.
- Betrieb ist anspruchsvoll: Broker-Cluster, Replikation, Upgrades und Monitoring brauchen Erfahrung.
- Kein Datenbank-Ersatz: Ereignis-Log und Zustand sind verschiedene Dinge — beide richtig einsetzen.
- Skalierung braucht Design: Partitions und Consumer Groups müssen zum Workload passen, sonst entsteht ein Engpass.
- Retention hat Kosten: Lange Retention = viel Speicher. Policy bewusst wählen.
Fazit
Kafka ist kein Datenbank-Ersatz, sondern das Ereignis-Rückgrat ereignisgesteuerter Architekturen:
- Ereignisse statt direkter Aufrufe — entkoppelt Dienste, eliminiert synchrones Warten und Datenverlust.
- Producer, Topics, Partitions, Consumer Groups — die Kernkonzepte verstehen, bevor man skaliert.
- KRaft statt Zookeeper — moderne Koordination ab Kafka 3.0.
- Kafka auf Kubernetes — StatefulSets, persistente Volumes und professioneller Betrieb machen es produktionsreif.
- KI-ready — Echtzeit-Feeds für Agents und Analytics auf derselben Plattform.
FAQ
Ist Kafka ein Ersatz für eine Datenbank? Nein. Kafka ist ein Ereignis-Log; die DB ist der aktuelle Zustand. Sie ergänzen sich.
Wann lohnt sich Kafka? Bei hohem Event-Volumen, mehreren Konsumenten, Echtzeit-Analytics und der Notwendigkeit, Ereignisse zu persistieren. Für einfache Queue-Szenarien reicht oft ein simpler Broker.
Brauche ich noch Zookeeper? Nein — ab Kafka 3.0 übernimmt KRaft die Koordination direkt in Kafka.
Warum Kafka auf Kubernetes betreiben? Kubernetes liefert das Betriebs-Fundament: StatefulSets für Broker, persistente Volumes, Self-Healing, Monitoring und Skalierung — aus einer Hand mit den restlichen Workloads.
Verwandte Artikel
📖 Verwandte Artikel
Weitere interessante Beiträge zu ähnlichen Themen
WordPress auf Kubernetes: sicher deployen & betreiben
WordPress auf Kubernetes betreiben: StatefulSets, MySQL, persistente Volumes & LoadBalancer im Deployment — und was eine echte Produktionsumgebung braucht.
Legacy auf Kubernetes migrieren: 4 Muster + Schritt-für-Schritt-Guide (2026)
Legacy auf Kubernetes migrieren: 4 Muster (Lift-and-Shift bis Rebuild), Blue-Green-Deployments, YAML-Beispiele & Checkliste für deutsche Enterprise.
Agentic AI auf Kubernetes: Was in der Praxis zählt
Agentic AI auf Kubernetes: Warum K8s das Substrat bleibt, welche Schichten (Inference bis Agents) zählen und wo Sandbox, Scheduling und Kosten knifflig werden.
AI auf Kubernetes starten: Plattform statt Roh-Cluster
AI auf Kubernetes starten: Warum K8s flexibel genug ist — und warum ohne Plattform-Schicht (Scheduling, Serving, APIs) Training und Inference scheitern.
GPU in Kubernetes: CDI, Sharing und DRA
GPUs unter Kubernetes verstehen: CDI statt NVIDIA-Docker, Time-Slicing vs. MPS vs. MIG und DRA als flexible Alternative zu den Device-Plugins.
Kubernetes AI at Scale: DRA, LLMD und Inference
Kubernetes wird Accelerator Native: DRA, LLMD, Disaggregated Serving und Inference Gateway für produktive GenAI-Workloads — was Plattform-Teams jetzt brauchen.
KubeVirt: Multi-Tenant-GPU-Clouds auf Kubernetes
KubeVirt als Tenancy-Layer für GPU-Clouds: VMs und Container auf einem Control Plane, DRA für Passthrough/vGPU/MIG sowie NUMA für Performance.
Llama Stack: Enterprise-KI-Plattform auf Kubernetes
Llama Stack standardisiert Inference, RAG, Agents und Guardrails wie Kubernetes Container: eine API, austauschbare Provider — von Laptop bis Rechenzentrum.