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
我做错了什么?
如果使用动态供应器,则无需自行创建 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
请注意,直接配置的持久卷 上的存储 类 仅用于通过持久卷声明引用这些卷的目的!
这里的意图是系统管理员设置一堆持久卷并处理引用集群外部硬盘驱动器设备的细节。然后,应用程序开发人员可以通过 Persistent Volume Claims 引用这些卷,比喻地说:“请给我找一个至少有 5GB 存储空间的 StorageClass SSD 卷”。
换句话说,如果您直接创建 PV,请确保您提供准确的配置,包括对物理存储设备的引用。
所以我正在尝试使用以下定义在 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
我做错了什么?
如果使用动态供应器,则无需自行创建 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
请注意,直接配置的持久卷 上的存储 类 仅用于通过持久卷声明引用这些卷的目的!
这里的意图是系统管理员设置一堆持久卷并处理引用集群外部硬盘驱动器设备的细节。然后,应用程序开发人员可以通过 Persistent Volume Claims 引用这些卷,比喻地说:“请给我找一个至少有 5GB 存储空间的 StorageClass SSD 卷”。
换句话说,如果您直接创建 PV,请确保您提供准确的配置,包括对物理存储设备的引用。