【发布时间】:2020-01-10 09:21:32
【问题描述】:
我正在尝试为 3 个 pod 部署一个持久化卷,我想使用集群的节点存储,即不是像 ebs 分拆这样的外部存储。
为了达到上述目的,我做了以下实验-
1) 我只应用了下面定义的 PVC 资源 -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: pv1
name: pv1
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
status: {}
这个旋转是默认存储类的存储集,在我的例子中是数字海洋的体积。所以它创建了一个 1Gi 卷。
2) 创建了如下所示的 PV 资源和 PVC 资源 -
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: pv1
name: pv1
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
status: {}
发布此消息,我发现我的声明已被绑定。
pavan@p1:~$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pv1 Bound task-pv-volume 10Gi RWO manual 2m5s
pavan@p1:~$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
task-pv-volume 10Gi RWO Retain Bound default/pv1 manual 118m
pavan@p1:~$ kubectl describe pvc
Name: pv1
Namespace: default
StorageClass: manual
Status: Bound
Volume: task-pv-volume
Labels: io.kompose.service=pv1
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"creationTimestamp":null,"labels":{"io.kompose.service":"mo...
pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 10Gi
Access Modes: RWO
VolumeMode: Filesystem
Mounted By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning ProvisioningFailed 28s (x8 over 2m2s) persistentvolume-controller storageclass.storage.k8s.io "manual" not found
以下是我希望得到答案/指点的问题-
以上警告,找不到存储类,是否需要 创建一个?如果是这样,你能告诉我为什么以及如何?或任何指针。 (不知何故,这个链接错过了 - https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/)
注意到 PV 的存储容量为 10Gi,PVC 的请求容量为 1Gi,但 PVC 还是绑定了 10Gi 的容量?我不能与其他 PVC 共享相同的 PV 容量吗?
对于问题 2)如果我必须为具有所需容量的不同 PVC 创建不同的 PV,我是否也必须创建 storageclass?还是同一个存储类,使用选择器选择对应的PV?
【问题讨论】:
-
问题仍然存在吗?