/kubernetes-kafka

Kafka cluster as Kubernetes StatefulSet, plain manifests and config

Primary LanguageShellApache License 2.0Apache-2.0

Kafka for Kubernetes

This community seeks to provide:

  • Production-worthy Kafka setup for persistent (domain- and ops-) data at small scale.
  • Operational knowledge, biased towards resilience over throughput, as Kubernetes manifest.
  • A platform for event-driven (streaming!) microservices design using Kubernetes.

To quote @arthurk:

thanks for creating and maintaining this Kubernetes files, they're up-to-date (unlike the kubernetes contrib files, don't require helm and work great!

Getting started

We suggest you apply -f manifests in the following order:

That'll give you client "bootstrap" bootstrap.kafka.svc.cluster.local:9092.

Fork

Our only dependency is kubectl. Not because we dislike Helm or Operators, but because we think plain manifests make it easier to collaborate. If you begin to rely on this kafka setup we recommend you fork, for example to edit broker config.

Version history

tag k8s ≥ highlights
v5.1.0 1.11+ Kafka 2.1.1
v5.0.3 1.11+ Zookeeper fix #227 + maxClientCnxns=1
v5.0 1.11+ Destabilize because in Docker we want Java 11 #197 #191
v4.3.1 1.9+ Critical Zookeeper persistence fix #228
v4.3 1.9+ Adds a proper shutdown hook #207
v4.2 1.9+ Kafka 1.0.2 and tools upgrade
... see releases for full history ...
v1.0 1 Stateful? In Kubernetes? In 2016? Yes.

Monitoring

Have a look at:

Outside (out-of-cluster) access

Available for:

Fewer than three nodes?

For minikube, youkube etc:

Stream...