Kubernetes PersistentVolume无效:规范:必需值:必须指定卷类型

Kubernetes PersistentVolume无效:规范:必需值:必须指定卷类型,kubernetes,kubernetes-helm,kubernetes-rook,rook-storage,Kubernetes,Kubernetes Helm,Kubernetes Rook,Rook Storage,我正在尝试在现有存储类名的基础上创建一个持久卷。然后我想把PVC贴在上面;使他们受到约束。运行下面的代码,将得到我想要的“sftp pv声明”,但它不绑定到我的pv(“sftp pv存储”)。它的状态是“待定” 我收到的错误消息是:“PersistentVolume“sftp pv存储”无效:规范:必需值:必须指定卷类型”。如果有人能告诉我为什么我会收到错误信息,我将不胜感激 规格: 我正在使用舵图创建PV和PVC 我使用Rancher UI查看它们是否绑定,以及PV是否生成 我使用的存储是Ce

我正在尝试在现有存储类名的基础上创建一个持久卷。然后我想把PVC贴在上面;使他们受到约束。运行下面的代码,将得到我想要的“sftp pv声明”,但它不绑定到我的pv(“sftp pv存储”)。它的状态是“待定”

我收到的错误消息是:“PersistentVolume“sftp pv存储”无效:规范:必需值:必须指定卷类型”。如果有人能告诉我为什么我会收到错误信息,我将不胜感激

规格:

我正在使用舵图创建PV和PVC

我使用Rancher UI查看它们是否绑定,以及PV是否生成

我使用的存储是Ceph with Rook(允许动态调配PV)

错误:

我收到的错误消息是:“PersistentVolume“sftp pv存储”无效:规范:必需值:必须指定卷类型”

尝试:

我尝试过使用claimRef和matchLabels,但没有效果

我在PV规范中添加了“volumetype:none”

如果我将“hostPath:path://mnt/data”作为规范添加到PV中,它将显示为可用的PV(带有本地节点路径),但我的PVC没有绑定到它。(另外,出于部署目的,我不想使用hostPath

## Create Persistent Storage for SFTP
## Ref: https://www.cloudtechnologyexperts.com/kubernetes-persistent-volume-with-rook/

kind: PersistentVolume
apiVersion: v1
metadata:
  name: sftp-pv-storage
  labels:
    type: local
    name: sftp-pv-storage
spec:
  storageClassName: rook-ceph-block
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  allowVolumeExpansion: true
  volumetype: none

---
## Create Claim (links user to PV)
##  ==> If pod is created, need to automatically create PVC for user (without their input)

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: sftp-pv-claim
spec:
  storageClassName: sftp-pv-storage
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

持久卷“sftp pv存储”无效:规范:Requiredvalue:必须指定卷类型。

在PV清单中,您必须提供卷的类型。所有支持类型的列表如下所述。 当您使用
Ceph
时,我假设您将使用
cepfs

CEPFS卷允许将现有CEPFS卷装入 你的豆荚。与emptyDir不同,emptyDir在移除豆荚时会被擦除 cephfs卷的内容被保留,该卷仅为 未装载。这意味着CEPFS卷可以预先填充 数据,这些数据可以在POD之间“传递”。CEPFS可以 由多个写入程序同时装入

您可以在中找到
cepfs
的示例

如果我将“hostPath:path://mnt/data”作为规范添加到PV中,它将显示为可用PV(带有本地节点路径),但我的PVC未绑定到它。

如果您要查看有关
storageClassName

声明可以通过指定声明的名称来请求特定类 使用属性storageClassName的StorageClass。只有 请求的类(与PVC具有相同storageClassName的类)可以 被绑定到PVC上

您的
PV
PVC
storageClassName
是不同的

PV:

聚氯乙烯:

希望有帮助。

您没有在PersistentVolume中指定“hostPath:” 添加它,错误应该得到解决。请参阅下面的示例

spec:
  storageClassName: rook-ceph-block
spec:
  storageClassName: sftp-pv-storage