是否可以将本地计算机文件夹挂载到Kubernetes进行开发,例如docker run -v

Chr*_* G. 3 kubernetes rook-storage

您是否知道是否可以将本地文件夹安装到Kubernetes运行容器中。

就像docker run -it -v .:/dev some-image bash我在本地计算机上执行此操作,然后从VS Code远程调试到容器中一样。

更新:这可能是一个解决方案:telepresence 链接:https : //kubernetes.io/docs/tasks/debug-application-cluster/local-debugging/

您是否知道可以将本地计算机安装到Kubernetes。此容器应有权访问Cassandra IP地址。

你知道有可能吗?

Luk*_*ele 5

Kubernetes卷

使用hostPath将是一个解决方案:https : //kubernetes.io/docs/concepts/storage/volumes/#hostpath

但是,仅当您的群集与已安装的文件夹在同一台计算机上运行时,它才有效。

另一个但可能稍微有点过大的方法是使用分布式或并行文件系统,并将其安装到您的容器中,以及将其安装在本地主机上。一个例子是CephFS,它允许多次读写挂载。您可以使用rook启动ceph集群:https : //github.com/rook/rook

具有文件同步功能的Kubernetes本机开发工具

一种解决方案是使用开发工具,使您可以将本地文件夹的内容同步到kubernetes容器内的文件夹。例如,那里是ksynchttps : //github.com/vapor-ware/ksync

我已经测试了ksync和许多kubernetes原生开发工具(例如,远程呈现,skaffold,draft),但是我发现它们很难配置并且使用起来很费时。这就是为什么我与同事一起创建了一个名为DevSpace CLI的开源项目的原因:https : //github.com/covexo/devspace

它允许您在本地文件夹和k8s容器内运行的容器内的文件夹之间配置实时双向同步。它是唯一可以让您使用热重装工具(例如,针对Node.js的nodemon)的工具。它适用于卷以及临时/非永久文件夹,并让您直接输入类似于kubectl exec等的容器。它可与minikube和任何其他自托管或基于云的kubernetes集群一起使用。

让我知道这是否对您有帮助,如果您缺少使用Kubernetes实现最佳开发工作流程所需的东西,请随时提出问题。我们很乐意为此努力。

  • 对我来说,devspace 也很难配置并且使用起来很耗时。没有理想的解决方案。 (2认同)

Rad*_*nka 2

只要我们谈论像hostPathdocker -v卷类型这样的事情就应该可以解决问题。但这意味着您需要将要使用的内容存储在 Pod 将运行的节点上。这意味着对于 GKE,这意味着代码需要存在于 google 计算节点上,而不是您的工作站上。如果您为本地开发配置了本地 k8s 集群(minikube、kubeadm...),那么也可以设置为工作。