因此,我实际上想启动我的 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"
实际上选项--mount
似乎--mount-string="${PWD}/srcs/mysql/datas:/data"
不起作用。没有显示警告或错误输出,但当我连接到机器并将文件列到 /data 上时,什么也没有出现。我的目录未安装。
如果我使用以下命令挂载目录:minikube mount ${PWD}/srcs/mysql/datas:/data
它可以工作,并且我可以在 /data 中列出我的数据。(但我真的想在启动时启动它,现在我做错了什么)。
答案1
发布此社区 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 ..
$ 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
可以看出,当挂载到除 之外的目录时,文件可以正确显示/data
。
附注!
仅当数据成功安装到文件夹时才会出现上述情况
--driver=docker
。--driver=kvm2
/data
这可以与某些目录的持久性有关minikube
。有关更多信息,请参见此处:
另一点补充!
$ minikube mount
使用/data
作为目标文件夹正常工作。
其他资源: