将目录复制到minikube中并保留它们

时间:2018-11-08 09:36:48

标签: kubernetes minikube

我正在尝试将一些目录复制到minikube VM中,以供正在运行的某些pod使用。其中包括应用程序在运行时使用的API凭据文件和模板文件。我发现您可以使用scp将文件复制到/home/docker/目录中,但是这些文件在VM重启后不会保留。我已读取文件/目录,如果存储在VM上的/data/目录中(以及其他目录),这些文件/目录将保留下来,但是尝试将文件复制到这些目录时,我得到了permission denied

在那里:

A:minikube中的任何目录都将保留不受这种方式保护的数据

B:执行上述操作的其他任何方式都不会遇到此问题(很可能会以错误的方式进行处理)

为澄清起见,我已经能够使用卷将文件从/home/docker/装载到Pod中,所以这只是我不清楚的持久数据。

2 个答案:

答案 0 :(得分:1)

对于minikube,minikube将保存在$HOME/.minikube/files目录中的数据复制到VM主机中的/目录中。

答案 1 :(得分:1)

Kubernetes具有用于此类事物的专用对象类型。您可能存储在Secret中的API凭证文件,而模板文件(如果尚未在Docker映像中内置)则可以进入ConfigMap。它们都可以转换为环境变量,也可以作为人工卷安装在运行的容器中。

以我的经验,尝试直接在节点上存储数据不是一个好习惯。具有多个节点,不直接拥有对这些节点的登录访问权限以及在直接控制之外创建和销毁它们(通常是在云提供商上运行的自动缩放器,当所有现有节点创建时都会创建一个新节点)已经足够普遍了。节点已安排90%)。您的数据很有可能不会(或不能)位于您期望的主机上。

这确实导致Kubernetes对象和相关资源的激增,并且您可能会发现Helm图表是将它们联系在一起的好资源。您可以将图表与您的应用程序一起检查到源代码控制中,然后一口气部署整个流程。除了具有将资源打包在一起(部署时配置系统,Kubernetes YAML本身的模板语言)之外,它还有几个有用的功能,如果不需要它们,则可以忽略这些,而只编写一堆YAML文件和一个小的控制文件。