Minikube 在 minikube 启动时挂载 datadir

nai*_*l0x 5 kubernetes minikube

所以我实际上想启动我的 minikube 集群,并在 /data 上安装一个特殊目录。该目录包含我的数据库数据。

为此我尝试:

minikube start \
--driver=docker \
--extra-config=apiserver.service-node-port-range=1-35000 \
--disk-size=5000mb \
--mount \
--mount-string="${PWD}/srcs/mysql/datas:/data"
Run Code Online (Sandbox Code Playgroud)

实际上选项--mount似乎--mount-string="${PWD}/srcs/mysql/datas:/data"不起作用。没有显示警告或错误输出,但是当我连接到计算机并将文件列表到 /data 时,什么也没有出现。我的目录没有挂载。

如果我使用以下命令挂载目录:minikube mount ${PWD}/srcs/mysql/datas:/data它可以工作,并且我可以在 /data 中列出我的数据。(但我真的想在启动时启动它,现在我做错了什么)。

小智 3

发布此社区 wiki 答案以表明该问题已通过以下方式解决:

我在删除 Minikube 配置文件夹“~/.minikube”并更新到 Minikube v1.19.0 后重试,它可以工作:minikube start --mount --mount-string="$(pwd):/src


为了检查整个场景,我使用以下设置重现了它:

  • Ubuntu 20.04
  • Docker 20.10.7
  • KVM 4.2.1
  • Minikube:
    • v1.22.0(使用相同的步骤测试了两个版本)
    • v1.19.0

我认为问题不是通过删除~/.minikube目录或升级来解决的minikube,而是通过更改已安装的目标文件夹来解决的。

假设以下设置:

  • $ mkdir ~/test
  • $ echo "General Kenobi!" > ~/test/hello_there.txt
  • $ minikube start --mount --mount-string ~/test:/data
  • $ minikube ssh
  • $ ls -al /data
total 8
drwxr-xr-x 2 root root 4096 Jul 13 11:45 .
drwxr-xr-x 1 root root 4096 Jul 13 11:45 ..
Run Code Online (Sandbox Code Playgroud)
  • $ minikube start --mount --mount-string ~/test:/src <-- 注意目的地变化
  • $ minikube ssh
  • $ ls -al /src <-- 注意目的地变化
total 12
drwxrwxr-x 2 1003 1004 4096 Jul 13 11:42 .
drwxr-xr-x 1 root root 4096 Jul 13 11:47 ..
-rw-rw-r-- 1 1003 1004   16 Jul 13 11:42 hello_there.txt
Run Code Online (Sandbox Code Playgroud)

可以看出,当挂载到 .txt 以外的目录时,文件显示正确/data

附注!

上述场景仅出现在--driver=docker. 成功--driver=kvm2将数据安装到文件夹。/data

可能minikube与某些目录的持久性有关。更多相关内容可以在这里找到:

另一个旁注!

$ minikube mount作为/data目标文件夹工作正常。


其他资源: