Windows持久卷上的Kubernetes

时间:2017-07-13 20:28:10

标签: windows-10 kubernetes kubectl minikube

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 

2 个答案:

答案 0 :(得分:0)

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

snapshot

Minikube使用VM来模拟kubernetes VM。

Minikube也提供了安装功能,对于持久性而言不是那么用户友好。

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

  • 使用/c/Users下的文件夹作为您的yaml文件
  • 将额外文件夹映射到虚拟机虚拟机C:\Users
  • 使用minikube mount,请参阅host folder mount

答案 1 :(得分:0)

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

由于Windows上存在与docker挂载路径相关的错误,您需要在pod中使用驱动器号作为挂载路径,请参阅问题:https://github.com/moby/moby/issues/34729