bitnamicharts/mongodbMongoDB® 是一个开源的关系型NoSQL数据库,采用类JSON文档格式存储数据,易于使用且具备自动扩展能力和高性能,是开发云原生应用的理想选择。Bitnami提供的MongoDB® Helm Chart可快速在Kubernetes集群上部署和管理MongoDB®,支持独立模式(standalone)和副本集(replicaset)两种架构,满足不同场景下的可用性和扩展性需求。
免责声明:本产品中提及的商标归各自公司所有。Bitnami不提供任何商业许可,本清单基于开源许可。MongoDB® 由MongoDB公司独立运营和维护,与Bitnami是完全独立的项目。
通过Helm快速部署MongoDB®:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/mongodb
提示:该应用也可作为Kubernetes应用在Azure Marketplace获取,简化AKS部署流程,详见Azure Marketplace。
通过architecture参数选择部署架构:
| 架构模式 | 参数值 | 适用场景 |
|---|---|---|
| 独立模式 | standalone | 开发/测试,单节点不可扩展 |
| 副本集模式 | replicaset | 生产环境,多节点高可用 |
单Deployment/StatefulSet部署,包含1个MongoDB®服务器:
---------------- | MongoDB® 服务 | ---------------- | v ------------ | MongoDB® 服务器 | | Pod | ------------
包含2个StatefulSet:N个数据节点(1主N-1从)+ 1个仲裁节点:
---------------- ---------------- ---------------- ------------- | MongoDB® 节点0 | | MongoDB® 节点1 | | MongoDB® 节点N | | 仲裁节点 | | 外部服务 | | 外部服务 | | 外部服务 | | 服务 | ---------------- ---------------- ---------------- ------------- | | | | v v v v ---------------- ---------------- ---------------- -------------- | MongoDB® 节点0 | | MongoDB® 节点1 | | MongoDB® 节点N | | MongoDB® 仲裁 | | 主节点 | | 从节点 | | 从节点 | | 节点 | | Pod | | Pod | | Pod | | Pod | ---------------- ---------------- ---------------- --------------
指定架构和副本数安装:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/mongodb \ --set architecture=replicaset \ --set replicaCount=3
通过values.yaml或--set覆盖默认参数,常用参数示例:
| 参数路径 | 描述 | 默认值 |
|---|---|---|
architecture | 部署架构(standalone/replicaset) | standalone |
replicaCount | 副本集数据节点数 | 1 |
auth.rootPassword | root用户密码 | 自动生成 |
auth.usernames | 普通用户名列表 | [] |
tls.enabled | 启用TLS加密 | false |
metrics.enabled | 启用Prometheus监控 | false |
副本集模式下,通过以下方式暴露节点至集群外:
Load***服务
yamlarchitecture: replicaset externalAccess: enabled: true service: { type: Load*** } autoDiscovery: { enabled: true } rbac: { create: true }
yamlexternalAccess: service: load***IPs: ["EXTERNAL-IP-1", "EXTERNAL-IP-2"]
NodePort服务
指定节点端口暴露:
yamlexternalAccess: enabled: true service: type: NodePort nodePorts: [30001, 30002] # 对应每个数据节点
通过以下方式配置实例初始化脚本(支持.sh/.js):
yamlinitdbScripts: init-user.js: | db.createUser({user: "app", pwd: "apppass", roles: ["readWrite"]})
yamlinitdbScriptsConfigMap: "my-init-scripts" # 覆盖内联脚本
yamlauth: existingSecret: "my-mongodb-secret" # 需包含mongodb-root-password等键
yamlpasswordUpdateJob: enabled: true auth: rootPassword: "new-root-pass" # 新密码
启用Prometheus监控:
yamlmetrics: enabled: true serviceMonitor: # 对接Prometheus Operator enabled: true username: "metrics-user" # 监控用户 password: "metrics-pass"
方法1:使用MongoDB工具
mongodump --uri="mongodb://user:pass@host:port/db"mongorestore --uri="mongodb://user:pass@new-host:port/db" /backup方法2:持久卷备份(Velero)
通过Velero备份PV,恢复时需保持部署名、命名空间、拓扑一致。
docker.io/bitnamilegacy仓库,不再更新。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务