【发布时间】:2020-07-23 14:54:35
【问题描述】:
我正在尝试使用基本身份验证将 MongoDB 设置为具有持久卷的 minikube 上的独立设备。在设置配置时,我可以看到 Mongodb 服务和 Pod 启动并运行。我还可以使用在秘密中设置的用户名/密码登录到 mongo shell。我还可以在 mongo shell 中成功插入示例文档。
但是当我停止 pod(或删除并应用 mongodb.yaml)时,重新开始,然后我看不到在我第一次创建示例文档的位置列出相同的数据库,因此我没有找到该示例文档也是。
- 我能否就我是否没有正确设置卷以在 pod 生命周期之外将数据持久保存在 mongo 中获得反馈?
- 如果用户名/密码是 admin/admin,我如何从运行 minikube 的 mac 从 MongoDB Compass 连接到 mongo?
- 如果用户名/密码是 admin/admin,我如何从运行在同一集群上的另一个 node.js 应用程序连接到 mongo?
这是我的配置
volume.yaml
kind: PersistentVolume
apiVersion: v1
metadata:
name: mongo-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/mongo_data"
mongodb.yaml
apiVersion: v1
data:
MONGO_INITDB_ROOT_USERNAME: YWRtaW4=
MONGO_INITDB_ROOT_PASSWORD: YWRtaW4=
kind: Secret
metadata:
name: mongodb-secrets
type: Opaque
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
app: mongo-claim0
name: mongo-claim0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app: mongo
name: mongo
spec:
serviceName: mongo
replicas: 1
selector:
matchLabels:
app: mongo
template:
metadata:
labels:
app: mongo
spec:
containers:
- env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
secretKeyRef:
name: mongodb-secrets
key: MONGO_INITDB_ROOT_USERNAME
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-secrets
key: MONGO_INITDB_ROOT_PASSWORD
image: mongo
imagePullPolicy: ""
name: mongo
ports:
- containerPort: 27017
resources: {}
volumeMounts:
- mountPath: /data/db
name: mongo-claim0
restartPolicy: Always
serviceAccountName: ""
volumes:
- name: mongo-claim0
persistentVolumeClaim:
claimName: mongo-claim0
---
apiVersion: v1
kind: Service
metadata:
labels:
app: mongo
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
clusterIP: None
selector:
app: mongo
【问题讨论】:
-
你在关注什么文档?
标签: mongodb kubernetes