[英]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.