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

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

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

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 企业版提供图形化控制台与商业支持等增值功能。