mongodb - 无法验证部署在 kubernetes 中的 Mongodb
问题描述
您好我已经在 kubernetes 上部署了 mongodb V-4.2.6,下面是 yaml 文件。
# Service to expose MongoDB
apiVersion: v1
kind: Service
metadata:
name: mongo
namespace: namespace-name
labels:
app: mongo
spec:
ports:
- name: mongo
port: 27017
targetPort: 27017
clusterIP: None
selector:
app: mongo
tier: db
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongo
namespace: namespace-name
labels:
tier: "db"
app: "mongo"
spec:
replicas: 1
selector:
matchLabels:
app: mongo
tier: "db"
template:
metadata:
labels:
app: mongo
tier: "db"
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo:4.2.6
resources:
limits:
memory: "2Gi"
requests:
memory: "512Mi"
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: "admin"
- name: MONGO_INITDB_ROOT_PASSWORD
value: "password"
- name: MONGO_INITDB_DATABASE
value: admin
command:
- mongod
- --auth
ports:
- containerPort: 27017
volumeMounts:
- name: nfs1
mountPath: /data/db
volumes:
- name: nfs1
nfs:
server: 0.0.0.0
path: "/path/to/volumes"
如果我尝试使用上述 yaml 文件中指定的凭据( db.auth("admin", "password") )登录,则会在 mongodb 中收到身份验证失败消息。我在 stackoverflow 中发现了相关问题,但找不到解决方案。谁能帮我从 yaml 文件创建管理员用户。
解决方案
command
从您的部署文件中删除它会起作用。因为当您在清单中设置MONGO_INITDB_ROOT_USERNAME
和ENV 变量时。MONGO_INITDB_ROOT_PASSWORD
Mongo 容器将--auth
自行启用。因此,您无需明确指定。看看这里。
更新了 YAML
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: "admin"
- name: MONGO_INITDB_ROOT_PASSWORD
value: "password"
- name: MONGO_INITDB_DATABASE
value: admin
ports:
- containerPort: 27017
推荐阅读
- html - 选择包含孩子的父母
- sql - ALTER PROCEDURE 有什么用途?
- node.js - Nodejs 并行请求越来越慢
- ios - Ionic WKWeabView 打破 iOS 上的模板
- ios - 为什么 URLSession.shared.data 失败并抱怨未连接的 nw_connection?
- c - 通过双指针为结构分配内存
- python - 从另一个数据帧添加到数据帧字符串值中的列
- apache-spark - Spark array_contains 但用于 Set 类型
- javascript - Three.js 不加载 gltf 文件
- python - 如何在 django 中使用 ForeignKey 加入多个表