Kubernetes 卷
使用hostPath将是一个解决方案:https ://kubernetes.io/docs/concepts/storage/volumes/#hostpath
但是,只有当您的集群与挂载的文件夹在同一台机器上运行时,它才会起作用。
另一种但可能有点过于强大的方法是使用分布式或并行文件系统并将其安装到您的容器中,以及将其安装到您的本地主机上。CephFS 就是一个例子,它允许多读写挂载。你可以用 rook 启动一个 ceph 集群:https ://github.com/rook/rook
具有文件同步功能的 Kubernetes 原生开发工具
一种解决方案是使用开发工具,该工具允许您将本地文件夹的内容同步到 kubernetes pod 内的文件夹。例如,有ksync:https ://github.com/vapor-ware/ksync
我已经测试过 ksync 和许多 kubernetes 原生开发工具(例如 Telepresence、skaffold、draft),但我发现它们很难配置并且使用起来非常耗时。这就是为什么我和一位同事一起创建了一个名为DevSpace的开源项目: https ://github.com/loft-sh/devspace
它允许您在本地文件夹和在 k8s pod 中运行的容器内的文件夹之间配置实时双向同步。它是唯一能够让您使用热重载工具(例如 nodemon for nodejs)的工具。它适用于卷以及临时/非持久文件夹,并允许您直接进入类似于 kubectl exec 的容器等等。它适用于 minikube 和任何其他自托管或基于云的 kubernetes 集群。
如果这对您有帮助,请告诉我,如果您遗漏了使用 Kubernetes 实现最佳开发工作流程所需的内容,请随时提出问题。我们很乐意为此而努力。