Mongodb k8s中的mongo设置未使用持久卷
我正试图在我的minikube集群中装载一个本地文件夹,作为mongo的Mongodb k8s中的mongo设置未使用持久卷,mongodb,docker,kubernetes,minikube,Mongodb,Docker,Kubernetes,Minikube,我正试图在我的minikube集群中装载一个本地文件夹,作为mongo的/data/db。到目前为止没有运气:( 所以,我遵循了一些步骤,它们描述了如何创建一个持久卷、一个持久卷声明、一个服务和一个pod 配置文件是有意义的,但当我最终启动pod时,它会由于错误而重新启动,然后继续运行 如果我连接到MongoDB/pod,mongo运行良好! 但是,它没有使用持久卷。这是我的pv.yaml: kind: PersistentVolume apiVersion: v1 metadata: na
/data/db
。到目前为止没有运气:(
所以,我遵循了一些步骤,它们描述了如何创建一个持久卷、一个持久卷声明、一个服务和一个pod
配置文件是有意义的,但当我最终启动pod时,它会由于错误而重新启动,然后继续运行
如果我连接到MongoDB/pod,mongo运行良好!
但是,它没有使用持久卷。这是我的pv.yaml:
kind: PersistentVolume
apiVersion: v1
metadata:
name: mongo-pv
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/k8s/mongo"
mongo pod内部是查看/data/db
中的mongo文件,但在我的本地计算机(/k8s/mongo
)上,文件夹是空的
下面我还将列出持久卷声明(pvc)和pod/服务yaml
pvc.yaml:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mongo-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
mongo.yaml:
apiVersion: v1
kind: Service
metadata:
name: mongo
labels:
name: mongo
spec:
clusterIP: None
ports:
- port: 27017
targetPort: 27017
selector:
role: mongo
---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
spec:
serviceName: "mongo"
replicas: 1
template:
metadata:
labels:
role: mongo
environment: test
spec:
terminationGracePeriodSeconds: 10
volumes:
- name: mongo-pv-storage
persistentVolumeClaim:
claimName: mongo-pv-claim
containers:
- name: mongo
image: mongo
command:
- mongod
- "--bind_ip"
- 0.0.0.0
- "--smallfiles"
- "--noprealloc"
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-pv-storage
mountPath: /data/db
我也尝试过,而不是使用persistentVolumeClaim
来完成
volumes:
- name: mongo-pv-storage
hostPath:
path: /k8s/mongo
提供相同的问题,但在创建过程中没有错误
有没有关于问题可能是什么的建议,或者下一步在哪里寻找更多细节
另外,PV和PVC是如何连接的?一些建议(可能/可能没有帮助)
将存储类名更改为字符串:
storageClassname: "manual"
这是一个非常奇怪的,但它为我工作,确保您的路径/k8s/mongo有正确的权限。
chmod 777/k8s/mongo
一些建议(可能/可能没有帮助)
将存储类名更改为字符串:
storageClassname: "manual"
这是一个非常奇怪的,但它为我工作,确保您的路径/k8s/mongo有正确的权限。
chmod 777/k8s/mongo
请试试这个
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
app: mongodb
spec:
replicas: 1
template:
metadata:
labels:
app: mongodb
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo:3
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-volume
mountPath: /data/db
volumeClaimTemplates:
- metadata:
name: mongo-persistent-volume
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 5Gi
您可以创建全新的PVC并在此处使用它或更改名称。这对我来说很有效。在传递命令时,我在配置mongoDB时也遇到了同样的问题。请删除这些命令,然后再试一次
有关更多详细信息,请查看github,请尝试此
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mongo
app: mongodb
spec:
replicas: 1
template:
metadata:
labels:
app: mongodb
spec:
terminationGracePeriodSeconds: 10
containers:
- name: mongo
image: mongo:3
ports:
- containerPort: 27017
volumeMounts:
- name: mongo-persistent-volume
mountPath: /data/db
volumeClaimTemplates:
- metadata:
name: mongo-persistent-volume
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 5Gi
您可以创建全新的PVC并在此处使用它或更改名称。这对我来说很有效。在传递命令时,我在配置mongoDB时也遇到了同样的问题。请删除这些命令,然后再试一次
有关更多详细信息,请检查github我可以确认它在k8s
docker For desktop
环境中确实有效。因此,问题与minikube有关。我已使用hyperkit
和vritualbox
驱动程序测试了minikube。在这两种情况下,写入/data/db的文件在本地文件夹(/k8s/mongo)中都不可见我可以确认它在k8sdocker for desktop
环境中确实有效。因此问题与minikube有关。我已经使用hyperkit
和vritualbox
驱动程序测试了minikube。在这两种情况下,写入/data/db的文件在本地文件夹(/k8s/mongo)中都不可见你能更新帖子吗?我还在工作。今天我没有时间,所以希望我明天能继续。它仍然不起作用,但我最近的想法是,它可能与Minikubebe有关,但在kubernetes集群上工作正常。你能更新帖子吗?我还在工作吗今天我没有时间,所以希望我明天可以继续。它仍然不起作用,但我最近的想法是,它可能与Minikubebe有关,但在kubernetes群集上,它工作得很好。请解释为什么这个解决方案有效,粘贴代码不是一个很好的答案,正如你所看到的,我提到了“删除命令”因此,我的解决方案是运行mongo db server,而不将命令作为参数传递,并使用PVC with mongoplies请解释此解决方案的工作原理,粘贴代码不是一个好的答案,正如您所看到的,我提到了“删除命令并尝试它。”因此,我的解决方案是运行mongo db server,而不将命令作为参数传递,并使用PVC withmongo