【问题标题】:unknown field "storage" in io.k8s.api.core.v1.PersistentVolumeClaimio.k8s.api.core.v1.PersistentVolumeClaim 中的未知字段“存储”
【发布时间】:2019-06-14 12:09:43
【问题描述】:

我的 pvc.yaml

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

microk8s 中运行kubectl apply -f pvc.yaml 出现以下错误:

错误验证数据:ValidationData(PersistentVolumeClaim): unknown field "storage" in io.k8s.api.core.v1.PersistenVolumeClaim 如果选择忽略这些错误,使用 --validate=false 关闭验证

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

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您忘记指定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
    

    【讨论】:

    • 感谢您的回复,我添加了文件系统,但仍然出现相同的错误:(,没有 volumeMode 设置,它在 GKE(google kube..engine) 上运行良好。但有/没有 volumeMode 它在 microk8s 中抛出错误:s
    • 嗯。诡异的。根据文档,它应该可以工作:kubernetes.io/docs/concepts/storage/persistent-volumes/…
    • 尝试添加@Nicolas Ben 所写的storageClassName
    • 好的,没问题。
    • volumeMode: Filesystem 无论如何都是默认值。
    【解决方案2】:

    如果您使用的是 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
    

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2021-02-26
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 2019-06-20
      • 2023-03-15
      • 1970-01-01
      • 2013-12-13
      相关资源
      最近更新 更多