【问题标题】:Helm Kubernetes MongoDB authentificationHelm Kubernetes MongoDB 身份验证
【发布时间】:2019-05-15 04:49:49
【问题描述】:
我们如何对 helm stable/mongo chart 创建的 mongodb 数据库进行身份验证(来自同一集群中的另一个 pod)?
“一个 pod url”mongodb://user:password@mongodb:27017/dbname 不起作用,因为我们必须对 admin pod 进行身份验证
根据 mongo 文档,我们应该使用类似:
mongodb://user:password@mongodb-1,mongodb-2,mongodb-3:27017/dbname
但图表只创建一项服务?!
我也尝试在网址中添加?authSource=admin&replicaSet=rs0,但身份验证仍然失败..
【问题讨论】:
标签:
mongodb
kubernetes
kubernetes-helm
【解决方案1】:
我设法连接到以下网址(仅作为根):
mongodb://root:<root_password>@mongodb.mongodb:27017/<db_name>?authSource=admin&replicaSet=rs0
将NOTES.txt 的--authenticationDatabase admin 转换为authSource=admin url 参数
【解决方案2】:
使用stable/mongodb图表并启用replicaSet选项,您应该使用"root"用户和mongodbRootPassword使用--authenticationDatabase admin选项(或设置@987654327)提供的密码连接到服务主机名<deployment fullname>-mongodb @ 在连接 URL 中)。示例:
kubectl exec -it deployname-mongodb-primary-0 -- mongo dbname -u root -p rootpassword --authenticationDatabase admin
相反,如果您设置了mongodbUsername、mongodbPassword 和mongodbDatabase,您可以以非root 用户身份连接到配置的数据库;在这种情况下,您应该跳过--authenticationDatabase(或authSource=admin)选项。示例:
kubectl exec -it deployname-mongodb-primary-0 -- mongo -u username -p userpassword