卷“ mongo”的MountVolume.SetUp失败:hostPath类型检查失败:/ mongo / data不是目录

Tlm*_*aK0 3 docker kubernetes rancher

我正在尝试配置hostPath以启动Mongodb pod。

我只安装了一个rancher最新稳定版本的kubernetes v1.8.5的一个节点。

我有创建文件夹,/mongo/data并允许所有用户使用所有权限。 在此处输入图片说明

我可以在没有sudo的情况下与docker完美运行docker镜像:

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

但是当我启动kubernetes时:

sudo kubectl create -f mongodb.yml

我懂了 MountVolume.SetUp failed for volume "mongo" : hostPath type check failed: /mongo/data is not a directory

这是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
Run Code Online (Sandbox Code Playgroud)

知道我应该在哪里寻找吗?

Tlm*_*aK0 8

type: Directory从 mongodb.yml 中删除按预期工作

更新:

在新版本中,更改type: Directorybytype: DirectoryOrCreate会创建目录。


vla*_*ror 8

如果您正在使用 minikube,请不要忘记 minikube 本身就是一个容器。SohostPath指向该容器中的路径,而不是主机上的路径。您必须将 PC 路径装入 minikube 容器,然后装入 POD。

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


Kev*_*vin 5

更改type: Directorytype: DirectoryOrCreate我的作品。