ApeCloud
博客开源社区关于我们
消息队列
开源

在 Kubernetes 上构建生产级 Kafka 消息平台

KubeBlocks Kafka Operator 同时支持 KRaft 无 ZooKeeper 模式与传统 ZooKeeper 模式,提供 Broker/Controller 分离部署、Topic 在线扩分区与 TLS 加密,适合高吞吐实时数据流场景。

访问 GitHub

3 种

部署模式

100%

开源免费

2 步部署生产级 Kafka Operator

1

安装 KubeBlocks

# 添加 Helm 仓库
helm repo add kubeblocks https://apecloud.github.io/helm-charts
helm repo update

# 安装 KubeBlocks
helm install kubeblocks kubeblocks/kubeblocks \
  --namespace kb-system --create-namespace
2

创建 Kafka Operator 集群

apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
  name: kafka-cluster
  namespace: demo
spec:
  terminationPolicy: Delete
  clusterDef: kafka
  topology: combined_monitor
  componentSpecs:
    - name: kafka-combine
      replicas: 3

核心能力

KRaft 原生模式

支持 Kafka 3.x KRaft 模式,消除 ZooKeeper 依赖,降低运维复杂度,提升集群稳定性。

Broker/Controller 分离

支持 Broker 与 Controller 节点独立部署,按业务需求独立扩展,资源利用更合理。

Topic 在线扩分区

支持在线增加 Topic 分区数,数据自动 Rebalance,扩容期间消费不中断。

TLS 端到端加密

支持 Broker 间与客户端到 Broker 的 TLS 加密通信,保护数据传输安全。


部署拓扑

Combined 混合模式(KRaft)

每个节点同时承担 Kafka Broker 与 KRaft Controller 角色,无需 ZooKeeper 依赖。3 节点即可组成 Quorum,架构简洁,适合中小规模生产环境。

KRaft
开发/中小生产
运维简单
关键特性

每个节点同时运行 Broker 与 Controller,无 ZooKeeper 依赖

3 节点 Quorum 同时处理元数据与数据

架构简洁,运维复杂度低

Kafka 3.x 及以上版本推荐方案

生产者 / 消费者
Bootstrap 种子列表  kafka-cluster-kafka-combine-advertised-listener-0:9092,...
每 Pod(直连)  kafka-{n}.kafka-cluster-kafka-combine-headless:9092
bootstrap → 获取元数据 → 连接主分区
Kubernetes 服务
kafka-cluster-kafka-combine-advertised-listener-{n}
ClusterIP · :9092(每 Pod 一个,podService: true)
将所有 Pod 地址作为 bootstrap 种子列表使用
每 Pod bootstrap
→ 主分区所在 Pod(直连 advertised 地址)
kafka-0代理+控制
代理节点控制器
kafka:9092 · :9093 · :9094
jmx-exporter:5556 metrics
PVC data-0 · 日志目录
kafka-1代理+控制
代理节点控制器
kafka:9092 · :9093 · :9094
jmx-exporter:5556 metrics
PVC data-1 · 日志目录
kafka-2代理+控制
代理节点控制器
kafka:9092 · :9093 · :9094
jmx-exporter:5556 metrics
PVC data-2 · 日志目录
KRaft 法定数量(端口 :9093)每个节点运行同一个 kafka 容器 — 非独立的元数据部署 · Raft 共识管理集群元数据 · 同一时刻仅一个活跃控制器
无头服务 — 为每 Pod 的 advertised listener 地址提供 DNS;Kafka 客户端直连主分区 Pod
客户端流量(:9092)
KRaft 控制器法定数量(:9093)
内部复制(:9094)
持久化存储

常见问题

KubeBlocks Kafka Operator 支持哪些 Kafka 版本?

KubeBlocks Kafka Operator 支持 Kafka 3.3、3.6 等 KRaft 模式版本,以及 Kafka 2.7 ZooKeeper 模式版本。

KRaft 模式与 ZooKeeper 模式有什么区别?

KRaft 模式(Kafka 3.x)消除了对 ZooKeeper 的依赖,由 Kafka 内部 Controller 节点通过 Raft 协议管理元数据,架构更简洁,运维复杂度更低。ZooKeeper 模式为传统架构,新部署推荐使用 KRaft 模式。

KubeBlocks Kafka Operator 是否免费?

KubeBlocks开源版完全开源免费。KubeBlocks企业版 提供图形化控制台与商业支持等增值功能。