Kubernetes中的9P和hostPath挂载之间有什么区别?

时间:2020-11-03 14:39:12

标签: kubernetes minikube

我正在寻找在minikube上在Kubernetes中运行的应用程序的本地开发人员。我想挂载本地目录以加快开发速度,因此可以在不重建容器的情况下对我的应用程序(python)进行代码更改。

如果我理解正确,我有两个开箱即用的选项:

  1. 9P mount由minikube提供
  2. hostPath mount,直接来自Kubernetes

两者之间有什么区别?在什么情况下,哪一种适合另一种?

1 个答案:

答案 0 :(得分:2)

9P mounthostPath是两个不同的概念。您无法使用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(或本地主机)中创建的 如果在裸机上运行)。您可能会丢失其他目录上的数据 重新启动。

更多:note-persistence-minikube

另请参见driver-mounts