Mongodb身份验证在Kubernetes(minikube)中失败

13z8s7eq  于 2023-11-17  发布在  Go
关注(0)|答案(2)|浏览(337)

在下面的minikube部署中创建mongodb,无法通过命令行进行身份验证。
基本上,我只想列出所有数据库,因为我怀疑与mongo-express的连接存在问题。
我使用kubectl exec -it mongodb-deployment-6b46455744-gfkzw -- /bin/bash执行进入pod,
mongo以启动磁盘
db.auth("username", "password")给出MongoServerError: Authentication failed.
即使printenv给出了

  1. MONGO_INITDB_ROOT_PASSWORD=password
  2. MONGO_INITDB_ROOT_USERNAME=username

字符串
有帮助吗?

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: mongodb-deployment
  5. labels:
  6. app: mongodb
  7. spec:
  8. replicas: 1
  9. selector:
  10. matchLabels:
  11. app: mongodb
  12. template:
  13. metadata:
  14. labels:
  15. app: mongodb
  16. spec:
  17. containers:
  18. - name: mongodb
  19. image: mongo
  20. ports:
  21. - containerPort: 27017
  22. env:
  23. - name: MONGO_INITDB_ROOT_USERNAME
  24. valueFrom:
  25. secretKeyRef:
  26. name: mongodb-secret
  27. key: mongo-root-username
  28. - name: MONGO_INITDB_ROOT_PASSWORD
  29. valueFrom:
  30. secretKeyRef:
  31. name: mongodb-secret
  32. key: mongo-root-password
  33. - name: ME_CONFIG_MONGODB_ENABLE_ADMIN
  34. value: "true"
  35. ---
  36. apiVersion: v1
  37. kind: Service
  38. metadata:
  39. name: mongodb-service
  40. spec:
  41. selector:
  42. app: mongodb
  43. ports:
  44. - protocol: TCP
  45. port: 27017
  46. targetPort: 27017

wbrvyc0a

wbrvyc0a1#

设法连接使用

  1. mongosh --port 27017 --authenticationDatabase \
  2. "admin" -u "myUserAdmin" -p

字符串
从https://docs.mongodb.com/manual/tutorial/authenticate-a-user/#std-label-authentication-auth-as-user和docker hub页面。

eqoofvh9

eqoofvh92#

我也有同样的问题。
在我的例子中,我正在使用启动命令,并且在部署之间我首先强制执行命令mongod --bind_ip_all。由于数据库已在没有--auth标志的持久卷中创建,因此它没有创建必要的用户条目。
你要么需要删除你的持久卷(和部署和pod),并从头开始重新创建它.同时删除启动命令,让它初始化脚本.这样做,只有当你是确定与丢失数据.我猜你没有任何所以去吧.
或者,如果你想保留你的数据,用mongodb打开一个shell到你的pod,然后按照doc手动添加用户https://www.mongodb.com/docs/manual/reference/method/db.createUser/。由于之前没有通过--auth标志启用auth,你应该能够在没有凭据的情况下登录。

相关问题