为什么我的持久卷声明处于待处理状态?
Why is my persistent volume claim pending?
我现在已经 60 分钟了,我的持久卷声明仍在等待中。
我的存储空间class:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
Minikube没有提供这个,我不得不用上面的yaml添加它。在仪表板中,我可以单击它,它引用 green/ok.
的持久卷
我的持久卷(绿色,ok):
apiVersion: v1
kind: PersistentVolume
metadata:
name: small-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
我需要持久存储的原因是 nodered 将其数据存储在 /data 中,以便我在这里尝试做什么;为它提供持久卷来存储数据。由于这是在本地使用 minikube,我可以利用 minikube 实例上的 /data 文件夹,每个文档都是持久的。
我的节点化应用程序的持久卷声明。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nodered-claim
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
无论我是否添加部署,持久存储声明仍然在仪表板中 yellow/pending。有什么理由吗?我在这里错过了什么?
更新:
kubectl 描述 pvc/nodered-claim:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal WaitForFirstConsumer 2m52s (x162 over 42m) persistentvolume-controller waiting for first consumer to be created before binding
将您的 StorageClass 更新为即时:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate # <-- bind as soon as PVC is created
WaitForFirstConsumer
仅当 Pod 使用您的 PVC 时才会绑定。
...If I add the deployment or not, the persistent storage claim is still yellow/pending in the dashboard.
如果它需要的 PVC 无法绑定,您的部署也会进入挂起状态。
我现在已经 60 分钟了,我的持久卷声明仍在等待中。
我的存储空间class:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
Minikube没有提供这个,我不得不用上面的yaml添加它。在仪表板中,我可以单击它,它引用 green/ok.
的持久卷我的持久卷(绿色,ok):
apiVersion: v1
kind: PersistentVolume
metadata:
name: small-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- minikube
我需要持久存储的原因是 nodered 将其数据存储在 /data 中,以便我在这里尝试做什么;为它提供持久卷来存储数据。由于这是在本地使用 minikube,我可以利用 minikube 实例上的 /data 文件夹,每个文档都是持久的。
我的节点化应用程序的持久卷声明。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nodered-claim
spec:
storageClassName: local-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
无论我是否添加部署,持久存储声明仍然在仪表板中 yellow/pending。有什么理由吗?我在这里错过了什么?
更新:
kubectl 描述 pvc/nodered-claim:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal WaitForFirstConsumer 2m52s (x162 over 42m) persistentvolume-controller waiting for first consumer to be created before binding
将您的 StorageClass 更新为即时:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate # <-- bind as soon as PVC is created
WaitForFirstConsumer
仅当 Pod 使用您的 PVC 时才会绑定。
...If I add the deployment or not, the persistent storage claim is still yellow/pending in the dashboard.
如果它需要的 PVC 无法绑定,您的部署也会进入挂起状态。