我正在寻找在minikube上在Kubernetes中运行的应用程序的本地开发人员。我想挂载本地目录以加快开发速度,因此可以在不重建容器的情况下对我的应用程序(python)进行代码更改。
如果我理解正确,我有两个开箱即用的选项:
两者之间有什么区别?在什么情况下,哪一种适合另一种?
答案 0 :(得分:2)
9P mount和hostPath是两个不同的概念。您无法使用9P挂载将目录挂载到Pod。
9P安装用于将主机目录安装到minikube VM中。
HostPath是一个永久性卷,它将来自主机节点(在您的情况下为minikube VM)文件系统的文件或目录装载到Pod中。
还要看看持久卷的类型:pv-types-k8s。
如果要将本地目录挂载到pod:
首先,您需要使用9P将目录$HOME/your/path
装入minikube VM。执行命令:
$ minikube start --mount-string="$HOME/your/path:/data"
然后,如果您使用hostPath将/data
装入Pod,则会将本地目录数据放入Pod。
另一种解决方案:
将主机的$HOME
目录安装到minikube的/hosthome
目录中。获取数据:
$ ls -la /hosthome/your/path
要挂载此目录,您只需更改Pod的hostPath
hostPath:
path: /hosthome/your/path
看看:minikube-mount-data-into-pod。
另外,您需要知道:
Minikube配置为持久存储以下内容 目录,这些目录是在Minikube VM(或本地主机)中创建的 如果在裸机上运行)。您可能会丢失其他目录上的数据 重新启动。
另请参见driver-mounts。