2017-02-22 116 views
0

我正在运行minikube/Kubernetes,并且无法从部署中的volumeMount访问卷。Minikube/Kubernetes mountPath无法访问

我可以确认当微服务启动时,它无法访问/ config目录(即“volumeMounts”中的“mountPath”)。我已验证hostPath /路径是否有效。

我已经尝试了许多技术,并且还验证了部署文件是正确的。我也尝试过在路径规范中使用引号/双引号/不引号,但这不能解决问题。

请注意,我使用“hostPath”进行简单的测试,但是,这是我仍然需要解决的情况。

我minikube配置如下图所示:

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T07:30:54Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"darwin/amd64"} 
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"} 

我在MacOS /塞拉利昂版本10.12.3(16D32)运行minikube。

我的部署文件(deployment.yaml):

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: atmp1000-deployment 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: atmp1000 
    spec: 
     containers: 
     - name: atmp1000 
     image: atmp1000 
     ports: 
     - containerPort: 7010 
     volumeMounts: 
      - name: atmp1000-volume 
      mountPath: '/config' 
     volumes: 
     - name: atmp1000-volume 
     hostPath: 
      path: '/Users/<username>/<some-path>/config' 

任何帮助表示赞赏。

回答

1

为了完整起见,下面是我找到的解决方案...我得到了在minikube(Mac上)上运行的hostPath和挂载,这需要几个步骤,但需要几个“minikube delete”命令才能获得最多当前版本并重置环境。下面是关于如何得到这个功能提供了一些说明:

  • 我只好用xhyve驱动程序,使这一切工作正常 - 它可能适用于使用其他车手,但我没有尝试。

  • 我发现minikube安装主机的路径为“/用户”,这意味着“卷/ hostPath /路径”应在“/用户”

  • 开始我发现了一个不同的方式,这种合作包括使用声称,但原始问题中的文件现在反映了正确和简单的配置。

0

minikube尚不支持主机安装目录。请检查https://github.com/kubernetes/minikube/issues/2

内部minikube使用虚拟机来托管Kubernetes。如果您在POD规范中指定hostPath,则Kubernetes将主持在VM内挂载指定的目录,而不是在实际主机上挂载目录。

如果您确实需要访问主机上的某些内容,则必须使用NFS或任何其他基于网络的卷类型。

+0

好的。我可以尝试nfs,但是,minikube文档明确指出hostPath可用于minikube ..请参阅https://github.com/kubernetes/minikube)并参阅:http://blog.kubernetes.io/2016/07/ minikube,易于运行kubernetes-locally.html)。我不确定它是否有所作为,但我在Mac上使用xhyve管理程序而不是使用VirtualBox版本。 –

+0

从你提到的第一个链接:“Minikube支持类型为hostPath的PersistentVolumes,这些PersistentVolumes被映射到minikube虚拟机内的一个目录。“ 请注意最后一句,它表示主机挂载基于内部虚拟机目录 –

+0

有关hostPath的快速问题,因为我无法在文档中找到它的具体讨论:如果我想从内部访问主机文件minikube虚拟机和pod中,主机上的minikube根目录我应该放置文件,以便它们可以在mounthPath中可见(我知道这不是一个最佳实践,但正在尝试解决特定问题)。 –