ApeCloud
博客开源社区关于我们
首页

/

KubeBlocks开源版

/

ZooKeeper Operator

分布式协调
开源

在 Kubernetes 上自动化管理 ZooKeeper 集群

KubeBlocks ZooKeeper Operator 提供 ZooKeeper 集群的全生命周期自动化管理,支持滚动升级、动态配置变更与 Prometheus 监控集成,是 Kafka、HBase 等分布式系统的可靠协调服务底座。

访问 GitHub

RPO = 0

零数据丢失

99.99%

高可用目标

100%

开源免费

2 步部署生产级 ZooKeeper 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

创建 ZooKeeper Operator 集群

apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
  name: zookeeper-cluster
  namespace: demo
spec:
  terminationPolicy: Delete
  componentSpecs:
    - name: zookeeper
      componentDef: zookeeper
      serviceVersion: "3.9.4"
      replicas: 3

核心能力

集群生命周期管理

一键创建、扩容、缩容 ZooKeeper 集群,自动处理 Leader 选举与成员重新配置。

滚动升级无中断

逐节点滚动升级策略,升级期间集群保持 Quorum 可用,业务不中断。

Prometheus 监控集成

内置 JMX Exporter,自动暴露 ZooKeeper 指标,与 Prometheus + Grafana 无缝集成。

动态配置管理

支持 ZooKeeper 3.5+ 动态重新配置,无需重启即可调整集群成员与配置参数。


部署拓扑

ZAB 共识集群

ZooKeeper 基于 ZAB(ZooKeeper Atomic Broadcast)协议实现分布式一致性。Leader 处理所有写请求并广播给 Follower,多数节点确认后事务提交,保障数据零丢失。

ZAB 共识
Leader-Follower
角色感知路由
JMX 监控
关键特性

Leader 处理所有写请求,通过 ZAB 广播确保多数 Follower 确认后提交

Follower 承载只读请求,横向扩展读性能

三种 Service:Leader 专用写服务、全节点读服务、ZAB 协议内部通信

内置 JMX Exporter,自动暴露 ZooKeeper 指标,与 Prometheus + Grafana 无缝集成

支持 ZooKeeper 3.5+ 动态重新配置,无需重启调整集群成员

应用 / 客户端
写入/协调  zk-cluster-zookeeper:2181
读取(所有节点)  zk-cluster-zookeeper-readable:2181
读写 → roleSelector: leader
读取 → 所有 Pod(无 roleSelector)
Kubernetes 服务
zk-cluster-zookeeper
ClusterIP · :2181 客户端 · :8080 管理端
selector: kubeblocks.io/role=leader
Endpoints 随主节点切换自动更新
主节点
zk-cluster-zookeeper-readable
ClusterIP · :2181 客户端
无 roleSelector — 所有 Pod
将读请求分发到所有节点
所有节点
→ 主节点 Pod
→ 任意 Pod(负载均衡)
zookeeper-0主节点
zookeeper
:2181 客户端 · :2888 法定数量 · :3888 选举 · :8080 管理端
主节点
PVC data-0 · /bitnami/zookeeper/data
zookeeper-1从节点
zookeeper
:2181 客户端 · :2888 法定数量 · :3888 选举 · :8080 管理端
从节点
PVC data-1 · /bitnami/zookeeper/data
zookeeper-2从节点
zookeeper
:2181 客户端 · :2888 法定数量 · :3888 选举 · :8080 管理端
从节点
PVC data-2 · /bitnami/zookeeper/data
ZAB 共识协议(ZooKeeper 原子广播)所有写入经由主节点 · 原子广播至从节点 · 需多数派确认
无头服务 — 为内部使用提供稳定的 Pod DNS(法定数量、Leader 选举、operator 探针);不作为客户端入口
主节点 / 写流量
全节点读流量
从节点 Pod
持久化存储

常见问题

KubeBlocks ZooKeeper Operator 支持哪些 ZooKeeper 版本?

KubeBlocks ZooKeeper Operator 支持 ZooKeeper 3.7、3.8、3.9 等主流版本。

ZooKeeper 集群最少需要几个节点?

ZooKeeper 基于 ZAB 协议,需要多数派(n/2+1)节点存活才能对外服务。生产环境推荐 3 节点(可容忍 1 节点故障)或 5 节点(可容忍 2 节点故障)。

KubeBlocks ZooKeeper Operator 是否免费?

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