Kubernetes “未知字段”;储存;在io.k8s.api.core.v1.PersistentVolumeClaim中

Kubernetes “未知字段”;储存;在io.k8s.api.core.v1.PersistentVolumeClaim中,kubernetes,Kubernetes,我的pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: database-disk labels: stage: production name: database app: mysql spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi 在中运行kubec

我的pvc.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: database-disk
  labels:
    stage: production
    name: database
    app: mysql
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
在中运行
kubectl apply-f pvc.yaml
时出现以下错误:

验证数据时出错:ValidationData(PersistentVolumeClaim):io.k8s.api.core.v1.PersistenVolumeClaim中的未知字段“存储”,如果选择忽略这些错误,请使用--validate=false关闭验证


编辑:当我在虚拟机上复制文本时,存储缩进错误:(,现在工作正常

您忘记指定
volumeMode
。添加
volumeMode
选项,它应该可以工作

像这样:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: database-disk
  labels:
    stage: production
    name: database
    app: mysql
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 20Gi

如果使用的是storageClass,请将其定义为要使用的默认值,或在声明中指定
storageClassName

我在GCloud中对此进行了定义:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
  name: slow 
parameters:
  type: pd-standard
provisioner: kubernetes.io/gce-pd
reclaimPolicy: Delete
volumeBindingMode: Immediate

感谢您的回复,我添加了文件系统,但仍然存在相同的错误:(,没有volumeMode设置,它在GKE(google kube..engine)上运行良好).但是有/没有volumeMode,它会在microk8s中抛出错误:sHmm.奇怪。根据文档,它应该可以工作:尝试添加@Nicolas Ben编写的
storageClassName
。好的,没问题。
volumeMode:Filesystem
是默认值。