Kafka-Compatible Streaming on k3s¶
Overview¶
Provides an event-streaming platform for applications that need durable topics, consumer groups, replay, and Kafka client compatibility.
Kafka or Redpanda¶
| Choice | Use when | VPS impact |
|---|---|---|
| Apache Kafka in KRaft mode | Exact Kafka behavior and ecosystem are required | Higher tuning and memory cost |
| Redpanda | Kafka API compatibility and simpler single-node operations are enough | Better fit for an 8 GB VPS |
| No broker | Only background jobs are needed | Prefer a PostgreSQL outbox or Redis queue |
The template should make this component optional. A database, cache, observability stack, and broker together can exhaust an 8 GB node.
Single-Node Profile¶
Deploy the official Redpanda Helm chart through Argo CD with one replica, persistent storage, explicit CPU/memory limits, and external listeners disabled. Applications use the internal bootstrap service on port 9092.
Start with approximately 1 CPU, 1–2 GiB memory, and a 10–20 GiB volume. Validate exact values against the pinned chart version because its schema changes. Set topic retention by bytes and time so the VPS disk cannot fill indefinitely.
Verification¶
kubectl get pod,pvc,svc -n streaming
kubectl exec -n streaming redpanda-0 -c redpanda -- rpk cluster health
kubectl exec -n streaming redpanda-0 -c redpanda -- rpk topic create smoke-test
kubectl exec -n streaming redpanda-0 -c redpanda -- rpk topic list
Monitor under-replicated partitions, consumer lag, produce/fetch latency, disk usage, and broker restarts. One replica provides no broker or host redundancy; back up critical events at the application or data layer.