You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Kubernetes MongoDB Pod时无法创建用户,登录失败求助

问题分析与解决

错误点1:Secret的Base64编码不匹配

你提供的Secret中,username和password的Base64值与注释的明文完全不符:

  • username字段值QXBp解码后是Api,并非你注释的AUser
  • password字段值Z1IwUmVyUWlKZ解码后是gR0RerQiJ,并非你注释的gR0Rer

正确的编码应该是:

  • AUser的Base64编码为QXVzZXI=
  • gR0Rer的Base64编码为Z1IwUmVy

修正后的Secret YAML:

apiVersion: v1
data:
  password: Z1IwUmVy
  username: QXVzZXI=
kind: Secret
metadata:
  name: mongo-creds

错误点2:MongoDB初始化脚本仅执行一次

你使用了persistentVolumeClaim挂载数据卷,如果该PVC已有旧数据(比如之前未配置初始化用户就启动过MongoDB),MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_PASSWORD不会触发重新初始化——MongoDB的初始化脚本仅在数据目录为空时运行一次。

解决步骤:

  1. 删除现有PVC及对应PV(若为静态创建):
    kubectl delete pvc mongo-pvc-claim
    kubectl delete pv <你的PV名称>
    
  2. 重新部署MongoDB Deployment,确保数据目录为空,触发初始化脚本创建管理员用户。

额外问题:Service与Pod标签不匹配

你的Service的selector是app: mongo,但Pod的标签是name: mongo,这会导致Service无法路由到Pod。虽然当前用localhost直接访问(开启了hostNetwork: true)不影响登录,但后续通过Service访问会失败,建议修正:

  • 方案一:给Pod添加app: mongo标签:
    template:
      metadata:
        labels:
          name: mongo
          app: mongo
    
  • 方案二:修改Service的selector为name: mongo:
    spec:
      selector:
        name: mongo
    

内容的提问来源于stack exchange,提问作者LDonSOvrfw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 08:25:21