繁体   English   中英

GKE 上的持久卷问题

[英]Persistent Volume Issue on GKE

所以我试图在 GKE 上创建一个持久卷,定义如下:


apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv01-3gi
  labels:
    env: prod
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - 'ReadWriteOnce'
  storageClassName: standard

但是,当我尝试应用它时,我收到如下所示的错误消息:

➜ kubectl apply -f pv-1.yaml
The PersistentVolume "pv01-3gi" is invalid: spec: Required value: must specify a volume type

我的理解是卷类型由设置为标准的存储 class 指示(这是 GKE 提供的默认存储 class


➜ kubectl get storageclass
NAME                 PROVISIONER            AGE
standard (default)   kubernetes.io/gce-pd   16d

我究竟做错了什么?

请注意,直接提供的持久卷上的存储类仅用于使通过持久卷声明引用这些卷成为可能

这里的目的是系统管理员设置一堆持久卷并处理引用集群外部硬盘驱动器设备的细节。 然后,应用程序开发人员可以通过 Persistent Volume Claims 引用这些卷,形象地说:“请给我找一个存储空间至少为 5GB 的 StorageClass SSD 卷”。

换句话说,如果您直接创建 PV,请确保您提供准确的配置,包括对物理存储设备的引用。

如果使用动态配置器,则无需自己创建 PV。

只需创建一个具有存储 class 的 PVC,GKE 就会自动为 PV 提供请求的存储大小。

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: ssd-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10
  storageClassName: ssd

您缺少spec中的卷类型。 例如,我在这里添加了nfs类型。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv01-3gi
  labels:
    env: prod
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  storageClassName: standard
  volumeMode: Filesystem
  nfs: 
    path: /opt/nfs 
    server: nfs.f22 
    readOnly: false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM