【问题标题】:Kubernetes on Windows Persistent VolumeWindows 持久卷上的 Kubernetes
【发布时间】:2017-10-25 13:16:11
【问题描述】:

Windows minikube 是否支持带有主机路径的持久卷?如果是,语法是什么?

我试过了:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: kbmongo002
  labels:
    type: local
spec:
  storageClassName: mongostorageclass
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/temp/mongo"
    persistentVolumeReclaimPolicy: Retain
---

这通过了验证并创建了 PV,PVC 声明了它,但没有任何内容写入我预期的 C:\temp\mongo 位置

我也试过了:

  hostPath:
    path: "c:/temp/mongo"
    persistentVolumeReclaimPolicy: Retain
---

结果是:

Error: Error response from daemon: Invalid bind mount spec 
"c:/temp/mongo:/data/db": invalid mode: /data/db 
Error syncing pod 

【问题讨论】:

  • 如何将主机文件夹挂载到虚拟机中?

标签: windows-10 kubernetes kubectl minikube


【解决方案1】:

如果你在windows中使用virtualbox,只有c:/Users被映射到vm中,因为/c/Users是kubernetes系统可以访问的。这是Virtualbox中的功能。

Minikube 使用 VM 模拟 kubernetes VM。

Minikube 也提供了挂载功能,但对于持久性来说不是那么友好。

您可以尝试选择以下解决方案之一

  • 为您的 yaml 文件使用 /c/Users 下的文件夹
  • 将额外的文件夹映射到虚拟机虚拟机中,例如C:\Users
  • 使用minikube mount,见host folder mount

【讨论】:

【解决方案2】:

我在windows上试过k8s hostpath,效果很好。 您应该在 pod 安装路径中使用驱动器号,请参见示例:https://github.com/andyzhangx/Demo/blob/master/windows/azuredisk/aspnet-pod-azuredisk.yaml#L14

由于windows上存在docker挂载路径相关的bug,需要在pod中使用盘符作为挂载路径,见issue:https://github.com/moby/moby/issues/34729

【讨论】:

猜你喜欢
  • 2019-06-02
  • 1970-01-01
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 2018-12-09
  • 1970-01-01
  • 2019-08-26
相关资源
最近更新 更多