【发布时间】:2021-04-22 07:34:33
【问题描述】:
我正在尝试在 minikube 实例上部署 MongoDB pod。
我已经在 minikube 机器上挂载了一个本地目录,我希望 MongoDB 在这个目录中写入数据。
Minikube 使用这个命令行启动:
minikube start --mount --mount-string=/home/minikube:/data/host
我的mongo-deploy.yaml 如下所示
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodb-deploy
spec:
replicas: 1
selector:
matchLabels:
app: mongodb
template:
metadata:
labels:
app: mongodb
spec:
containers:
- name: mongodb
image: mongo
volumeMounts:
- name: mongodb-data
mountPath: /data/db
volumes:
- name: mongodb-data
hostPath:
path: /data/host/mongo
---
apiVersion: v1
kind: Service
metadata:
name: mongodb-srv
spec:
selector:
app: mongodb
ports:
- name: mongodb
protocol: TCP
port: 27017
targetPort: 27017
问题是当 pod 启动时,我得到了这个错误
{"log":"{\"t\":{\"$date\":\"2021-01-17T23:27:54.524+00:00\"},\"s\":\"E\", \"c\":\"STORAGE\", \"id\":20557, \"ctx\":\"initandlisten\",\"msg\":\"DBException in initAndListen, terminating\",\"attr\":{\"error\":\"IllegalOperation: Attempted to create a lock file on a read-only directory: /data/db\"}}\n","stream":"stdout","time":"2021-01-17T23:27:54.524391471Z"}
我很确定这完全与文件夹权限有关。
我尝试在本地文件夹上设置chmod 777,但它不起作用。
将 minikube 中的数据持久保存在本地机器上的正确方法是什么?
【问题讨论】:
-
能否将数据文件夹的所有权更改为 mongodb。
# chown -R mongodb.mongodb /data/db或者可以检查 mongodb 用户的 uid 并在 volumeMounts: 行上方的 yaml 文件command: ["sh", "-c", "chown -R UID:GID /data/db"]中传递以下命令。 -
您的主机操作系统是什么。你的 minikube 驱动是什么?
-
我的主机操作系统是 Ubuntu 18.04,我的 minikube 驱动程序是 Virtualbox
标签: mongodb kubernetes kubernetes-pod persistent-volumes