我正在尝试在Google Kubernetes Engine上创建PersistentVolume和PersistentVolumeClaim。
链接它们的方法是通过labelSelector。
我使用以下定义创建对象:
音量
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-test
namespace: mynamespace
labels:
pv-owner: owner
pv-usage: pv-test
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
hostPath:
path: /data/test/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pv-test
namespace: mynamespace
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
selector:
matchLabels:
pv-usage: pv-test
并运行:
kubectl apply -f volume.yml
这两个对象均已成功创建,但是,VolumeClaim显然会一直等待其匹配的Volume。
请你帮助我好吗?
谢谢!
最佳答案
首先,PersistentVolume
资源不属于任何 namespace 。它们是诸如节点之类的群集级资源,但是PersistentVolumeClaim
对象只能在特定的命名空间中创建。
好像您早先创建声明时,它立即绑定(bind)到PersistentVolume
。您能否显示命令的输出:
$ kubectl get pv
$ kubectl get pvc
您的
persistentVolumeReclaimPolicy
很可能已设置为Retain
,因此您的PersistentVolume
现在处于Released
状态。由于没有其他PersistenVolume
资源符合您的声明要求,因此PersistentVolumeClaim
处于Pending
状态。