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

/

KubeBlocks开源版

/

MongoDB Operator

NoSQL 数据库
开源

在 Kubernetes 上运行生产级 MongoDB 集群

KubeBlocks MongoDB Operator 支持 ReplicaSet 与 Sharded Cluster 两种部署模式,提供自动选主、在线扩容与基于 oplog 的增量备份,适合文档存储、实时分析等高并发业务场景。

访问 GitHub

RPO = 0

w:majority 写入模式

RTO < 30s

故障自动切换

100%

开源免费

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

创建 MongoDB Operator 集群

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

核心能力

ReplicaSet 高可用

Primary/Secondary/Arbiter 三节点副本集,Primary 故障时自动选主,RTO 低于 30 秒,数据零丢失。

Sharded Cluster 水平扩展

支持多 Shard 分布式集群,Config Server 与 mongos 路由层均可独立扩展,突破单机容量瓶颈。

oplog 增量备份

基于 oplog 实现持续增量备份,配合全量快照可还原到任意时间点,满足精细化 RPO 需求。

在线成员管理

支持在线添加/移除副本集成员、变更成员优先级,运维操作不影响业务读写。


部署拓扑

ReplicaSet 副本集

一主多从副本集架构,基于副本集投票与选举协议。Primary 故障时自动提升最新 Secondary,写关注 w:majority 保障数据零丢失,RTO 低于 30 秒。

自动故障转移
多数派选举
读写分离
w:majority
关键特性

Primary 处理所有写入,Secondary 通过 oplog 异步复制

副本集选举机制下,Primary 故障时自动提升最新 Secondary

支持从库读扩展,readPreference 可配置 secondaryPreferred

w:majority 写关注,确保数据提交到多数节点后才返回成功

应用 / 客户端
读写  mongo-cluster-mongodb-mongodb:27017
只读    mongo-cluster-mongodb-mongodb-ro:27017
读写 → roleSelector: primary
只读 → roleSelector: secondary
Kubernetes 服务
mongo-cluster-mongodb-mongodb
ClusterIP · :27017
selector: kubeblocks.io/role=primary
Endpoints 随主节点自动切换
读写
mongo-cluster-mongodb-mongodb-ro
ClusterIP · :27017
selector: kubeblocks.io/role=secondary
读请求分发至各从节点
只读
→ 主节点 Pod
→ 从节点 Pod
mongodb-0主节点
🍃
mongodb (mongod + 副本集)
:27017 mongo · 主节点状态
primary
📊
mongodb-exporter
:9216 metrics
⚙ init-syncer (copies syncerctl → /tools)
💾 PVC data-0 · 20Gi
mongodb-1从节点
🍃
mongodb (mongod + 副本集)
:27017 mongo · 从节点状态
secondary
📊
mongodb-exporter
:9216 metrics
⚙ init-syncer (copies syncerctl → /tools)
💾 PVC data-1 · 20Gi
mongodb-2从节点
🍃
mongodb (mongod + 副本集)
:27017 mongo · 从节点状态
secondary
📊
mongodb-exporter
:9216 metrics
⚙ init-syncer (copies syncerctl → /tools)
💾 PVC data-2 · 20Gi
副本集 Oplog 复制主节点-0 → 从节点-1 · 从节点-2  |  w:majority 写入确认
🔗无头服务 — 供内部使用的稳定 Pod DNS(复制、HA 心跳、Operator 探测);非客户端访问入口
主节点 / 读写流量
从节点 / 只读流量
副本集 DCS
持久化存储

常见问题

KubeBlocks MongoDB Operator 支持哪些 MongoDB 版本?

KubeBlocks MongoDB Operator 基于 Percona Server for MongoDB,版本矩阵覆盖 4.x–8.x。

MongoDB ReplicaSet 故障切换需要多长时间(RTO)?

在默认配置下,MongoDB ReplicaSet 故障切换 RTO 通常低于 30 秒。切换过程包括心跳超时检测、选举和主库重新服务,整个流程自动完成。

KubeBlocks MongoDB 如何进行备份?

KubeBlocks 支持基于 mongodump 的全量备份和基于 oplog 的增量备份,备份文件可上传至 S3、MinIO 等对象存储,支持按任意时间点恢复。

KubeBlocks MongoDB Operator 是否免费?

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