尝试创建持久卷时出错

问题描述 投票:1回答:2

我正在尝试在运行Amazon AWS EC2实例(Ubuntu 18.04)的kubernetes集群上创建持久卷。我在尝试创建它时从kubectl收到错误。

我已经尝试查找错误,但我没有得到任何令人满意的搜索结果。

这是我正在使用的pv.yaml文件。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv001
  labels:
    type: local
spec:
  capacity:
    storage: 1Gi
    storageClassName: manual
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: /home/ubuntu/data/pv001

这是我得到的错误:

Error from server (BadRequest): error when creating "./mysql-pv.yaml": 

PersistentVolume in version "v1" cannot be handled as a 
PersistentVolume: v1.PersistentVolume.Spec: 
v1.PersistentVolumeSpec.PersistentVolumeSource: HostPath: Capacity: 
unmarshalerDecoder: quantities must match the regular expression 
'^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$', error found in #10 byte
of ...|":"manual"},"hostPat|..., bigger context ...|city":
{"storage":"1Gi","storageClassName":"manual"},"hostPath":
{"path":"/home/ubuntu/data/pv001"},"p|...

我无法从消息中弄清楚实际的错误是什么。

任何帮助赞赏。

kubernetes
2个回答
1
投票

从pv定义中删除存储类。动态配置pv需要存储类。

在您的情况下,您正在使用主机路径卷。它应该没有存储类。

如果您使用的是k8s 1.14,那么请查看本地卷。请参阅以下链接https://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/


0
投票

我不认为这与在path中引用有关。它更多的是为storageClassName使用正确的缩进。它应该是这样的:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv001
  labels:
    type: local
spec:
  capacity:
    storage: 1Gi
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: /home/ubuntu/data/pv001

你也可以删除它,它将使用默认的StorageClass

© www.soinside.com 2019 - 2024. All rights reserved.