我在为部署在Kubernetes中的mongodb创建根用户时遇到了问题。
文件说明如下:#v+蒙戈初始化数据库根用户名,蒙戈初始化数据库根密码
这两个变量结合使用,创建一个新用户并设置该用户的密码。该用户在管理员身份验证数据库中创建,并被赋予root角色,即“超级用户”角色。#v-但将这些变量传递给容器并不能进行身份验证。
我已经包括以下部分在我的yaml:
containers:
- name: mongo
image: mongo
ports:
- containerPort: 27017
volumeMounts:
- name: database-storage
mountPath: /data/db
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: admin
- name: MONGO_INITDB_ROOT_PASSWORD
value: pass
当我运行Kubectl描述时,变量实际上是存在的:
Containers:
mongo:
Container ID: docker://ef17595eb5da4f096eed09229dcd7426ae1401e9ed773c5e1ac99ff9045d2ecf
Image: mongo
Image ID: docker-pullable://mongo@sha256:8bed0be3e86595283d67836e8d4f3f08916184ea6f2aac7440bda496083ab0c8
Port: 27017/TCP
Host Port: 0/TCP
State: Running
Started: Wed, 23 Nov 2022 22:07:28 +0100
Ready: True
Restart Count: 0
Environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: pass
Mounts:
/data/db from database-storage (rw)
但是,当我登录到pod并尝试进行身份验证时,它失败了。
kc exec -ti pod/database-0 -- mongosh
Current Mongosh Log ID: 637e8c17aa828f64d211fcdb
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.0
Using MongoDB: 6.0.3
Using Mongosh: 1.6.0
For mongosh info see: https://docs.mongodb.com/mongodb-shell/
test> use admin
switched to db admin
admin> db.auth('admin', 'pass')
MongoServerError: Authentication failed.
admin> db.auth(admin, pass)
ReferenceError: admin is not defined
admin> exit
我做错了什么
1条答案
按热度按时间yjghlzjz1#
我遇到了同样的问题,也找不到一个日志文件来显示正在发生的事情,唯一能让用户初始化的方法是使用安装到
/docker-entrypoint-initdb.d
目录的配置Map。config.yaml