错误"无效模式"从docker windows安装带有helm的mongodb on kubernetes

时间:2018-03-25 01:54:21

标签: docker kubernetes kubernetes-helm

我正在尝试Kubernetes和掌舵。我已经通过docker windows安装了k8s并创建了一个集群。我已经成功安装了仪表板和掌舵。运行helm install stable/mongodb后,我在k8s信息中心Error: Error response from daemon: invalid mode: /bitnami/mongodb中看到以下错误。 / bitnami / mongodb是mongodb图表创建的持久卷的默认挂载点。

以下是我的信息中心的屏幕截图。

enter image description here

我不确定如何进一步调试。我对此很新,所以我可能会遗漏一些明显的东西。有什么指针吗?

2 个答案:

答案 0 :(得分:1)

  

k8s通过泊坞窗口

这几乎可以肯定是您遇到麻烦的原因,因为Windows及其文件系统与传统的Linux-y docker世界不同。因此,这些目录极不可能由正确的Linux用户标识所拥有,并且对于mongodb所期望的任何内容来说,它们更不可能是正确的“权限位”(rwx)。

有几种方法可以测试这个理论:

  • 如果您的docker-for-windows实际上是在Linux虚拟机中运行(如VirtualBox,VMware等支持的docker-machine那样),那么您可以更改volume: Pod应为emptyDir: {}hostPath:,因为这些目录实际上将驻留在Linux虚拟机上。我认为可能对于Hyper-V支持的docker-machine VM也是如此,但我对它们没有那么多的经验
  • 如果您使用的是构建为Win32 / Win64应用程序的实际dockerd(不太可能,但我认为可能),那么您可以尝试切换到NFS(假设mongodb没有因为AFAIK对安装NFS文件夹时的UID和权限位映射有更大的影响

如果您在应用程序启动emptyDir:hostPath:时遇到这种情况,那么您现在面临的挑战是找到一些使用Linux友好文件系统并在Windows上使用它的存储机制。同样,在您拥有虚拟机的情况下,您很有可能将虚拟磁盘连接到计算机,使用Linux文件系统对其进行格式化,然后重新开始运营。网络支持的文件系统也是如此,模数人希望对网络支持的文件系统和mongodb - 尤其是 mongodb等数据库 - 持谨慎态度。

如果我可以提供一个意见,请与我希望的是一些建设性的调试技巧分开:你只是想要在Windows上尝试做这些事情的痛苦世界。它几乎没有花费大量时间来行使这些情况,也几乎没有找到解决方案的生态系统。仅供您考虑。

答案 1 :(得分:0)

我通过切换到使用Virtualbox而不是hyperv的Docker Toolbox和minikube解决了这个问题。通过helm安装mongodb可以完美地按预期工作。看来,Docker for Windows安装程序在hyperv中安装了kubernetes存在一些问题。