MountVolume.SetUp failed for volume “mongo” : hostPath type check failed: /mongo/data is not a directory

ぐ巨炮叔叔 提交于 2021-01-20 04:32:45

问题


I'm trying to configure a hostPath to launch Mongodb pod.

I have only one node of kubernetes v1.8.5 installed with rancher last stable version.

I have create folder /mongo/data and allow all permissions to all users.

I'm able to run docker image perfectly with docker without sudo:

docker run --name some-mongo -v /mongo/data:/data/db mongo:3.2.1

But when I launch to kubernetes:

sudo kubectl create -f mongodb.yml

I get MountVolume.SetUp failed for volume "mongo" : hostPath type check failed: /mongo/data is not a directory

This is the mongodb.yml:

apiVersion: v1
kind: Pod
metadata:
  name: test-pd
spec:
  containers:
  - image: mongo:3.2.1
    name: test-container
    volumeMounts:
    - mountPath: /data/db
      name: mongo
  volumes:
  - name: mongo
    hostPath:
      # directory location on host
      path: /mongo/data
      # this field is optional
      type: Directory

Any idea where I should looking for?


回答1:


Changing type: Directory to type: DirectoryOrCreate works for me.




回答2:


Removing type: Directory from the mongodb.yml works as expected




回答3:


If by any chance you are using minikube, then don't forget that minikube itself is a container. So hostPath points to a path in that container, not to a path on your host machine. You have to mount your PC path into the minikube container and then into the POD.

Example: minikube start --mount --mount-string="/host/path:/minikubeContainer/path"




回答4:


You are creating the docker container directly on the master node. As a result of this you could be able to run docker container with the newly created directory. But when you launch the kubernetes yaml file, it intends to run on a worker node. Since you create the directory on the master node, kubelet cannot find directory on worker node and failing. That's why "DirectoryorCreate" value on type flag is a kind of solution for this.



来源:https://stackoverflow.com/questions/48927312/mountvolume-setup-failed-for-volume-mongo-hostpath-type-check-failed-mongo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!