Kubernetes中部署MongoDB副本集的完整步骤指南
目前,MongoDB Controllers for Kubernetes Operator 是当前唯一受支持的生产级部署方案,MongoDB Enterprise Kubernetes Operator 已于 2026 年正式停用。现在必须使用新 Helm 仓库 https: mongodb g
目前,MongoDB Controllers for Kubernetes Operator 是当前唯一受支持的生产级部署方案,MongoDB Enterprise Kubernetes Operator 已于 2026 年正式停用。现在必须使用新 Helm 仓库 https://mongodb.github.io/helm-charts 中的 mongodb/mongodb-kubernetes chart,并正确配置 Cloud Manager/Ops Manager API Key、强制启用 TLS、显式设置 externalAccess 以及 publishNotReadyAddress: true。

确认 Operator 版本与 Helm 仓库
这一步不要省略,很多 MongoDB on Kubernetes 部署失败、连接异常或 CRD 不生效的问题,根源都在于使用了旧仓库或已废弃的 chart。
- 必须使用新的 Helm 仓库:
https://mongodb.github.io/helm-charts,旧的stable/mongodb-enterprise等仓库已经不可用 - 应安装的是
mongodb/mongodb-kuberneteschart,而不是mongodb/enterprise-operator,后者对应的是已弃用的旧版 Operator - 检查本地 Helm 仓库是否已更新:
helm repo update;如果之前添加过旧源,建议先执行helm repo remove mongodb,再重新添加新仓库
部署 Operator 前必须配置 Cloud Manager / Ops Manager API Key
Operator 启动后会立即尝试连接 Cloud Manager 或 Ops Manager(6.0.x+)。如果相关配置不完整,部署通常会卡在 Pending 状态,日志中还会反复出现 Unauthorized 或 connection refused 等报错。
- 登录 Cloud Manager 控制台,进入 Kubernetes Settings,然后选择 Generate Key and YAML
- 生成后的
config-map.yaml必须提前执行 apply,并确保其中的baseUrl能被 Operator Pod 正常访问,例如不能填写localhost或集群无法访问的内网地址 - API Key 权限必须包含
Automation Administrator角色,仅分配Viewer权限会导致资源创建请求被拒绝
定义 MongoDBReplicaSet CR 时 TLS 是必须显式配置的关键项
如果没有明确声明 spec.security.tls.enabled,Operator 默认会关闭 TLS;但 Cloud Manager 6.0.10+ 实际要求所有新建 MongoDB 副本集启用 TLS,否则部署过程通常会停留在 WaitingForAgent 状态。
- 如果使用自签名证书,必须同时提供:
spec.security.certsSecretPrefix(指向包含ca.pem、server.pem等文件的 Secret)以及spec.security.tls.ca(CA 公钥内容) - 如果使用 Let’s Encrypt 或云服务厂商提供的证书,需要确保 Secret 中的 key 名称为
tls.crt和tls.key,这样 Operator 才能正确自动挂载 - 常见错误示例:只设置
spec.security.tls.enabled: true,却没有配置certsSecretPrefix,会导致 Pod 启动失败,并报出failed to load TLS certificate
外部访问必须显式开启 externalAccess
MongoDB 副本集成员默认只能通过 Kubernetes 集群内部 DNS 解析,例如 mongo-0.mongo-svc.mongodb.svc.cluster.local。如果要让外部应用连接 MongoDB,仅仅暴露 Service NodePort 并不足够,因为 Operator 不会自动对外发布成员访问地址。
- 必须在 CR 中明确设置:
externalAccess: {},否则 Operator 不会创建 LoadBalancer 类型的外部访问服务 - 每个 Pod 都会生成一个独立的
Service,名称固定不可修改,默认端口为 27017-svc-external publishNotReadyAddress: true是必须项,如果设置为false,会导致 DNS 记录生成延迟,进而引发客户端首次连接超时
Failed to create automation config,才能定位真实原因。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
Redis是什么:核心特性、架构与应用场景解析
Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。
Windows 安装 MongoDB 完整图文教程
本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。
Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。
MacOS安装MongoDB完整教程
本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。
Ubuntu系统安装与配置Redis完整指南
本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。
- 热门数据榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2026-09-01 06:20
2026-09-01 06:20
2026-09-01 06:20
2026-09-01 06:19
2026-09-01 06:19
2026-09-01 06:19
2026-09-01 06:18
2026-09-01 06:18
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

