我正在尝试在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状态。

07-24 19:19