我正在尝试Kubernetes和掌舵。我已经通过docker windows安装了k8s并创建了一个集群。我已经成功安装了仪表板和掌舵。运行helm install stable/mongodb
后,我在k8s信息中心Error: Error response from daemon: invalid mode: /bitnami/mongodb
中看到以下错误。 / bitnami / mongodb是mongodb图表创建的持久卷的默认挂载点。
以下是我的信息中心的屏幕截图。
我不确定如何进一步调试。我对此很新,所以我可能会遗漏一些明显的东西。有什么指针吗?
答案 0 :(得分:1)
k8s通过泊坞窗口
这几乎可以肯定是您遇到麻烦的原因,因为Windows及其文件系统与传统的Linux-y docker世界不同。因此,这些目录极不可能由正确的Linux用户标识所拥有,并且对于mongodb所期望的任何内容来说,它们更不可能是正确的“权限位”(rwx
)。
有几种方法可以测试这个理论:
volume:
Pod应为emptyDir: {}
或hostPath:
,因为这些目录实际上将驻留在Linux虚拟机上。我认为可能对于Hyper-V支持的docker-machine VM也是如此,但我对它们没有那么多的经验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存在一些问题。