命名空间中的PersistentVolumeClaim不连接到PersistentVolume

问题描述 投票:0回答:1

我的PersistentVolumeClaim不会使用我为它准备的PersistentVolume。

我在PersistentVolume有这个monitoring-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: monitoring-volume
  labels:
    usage: monitoring
spec:
  capacity:
    storage: 50Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /data/k8data/monitoring

我做完之后

kubectl apply -f monitoring-pv.yaml 

我可以检查它与kubectl get pv存在

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS        CLAIM                                     STORAGECLASS   REASON    AGE
monitoring-volume                          50Gi       RWO            Retain           Available                                                                        5m

我在PersistentVolumeClaimmonitoring-pvc.yaml看起来像这样:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: monitoring-claim
  namespace: monitoring
spec:
  storageClassName: manual
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 50Gi
  selector:
    matchLabels:
      usage: monitoring    

当我做kubectl apply -f monitoring-pvc.yaml它被创造了。

我可以用PersistentVolumeClaimand看看我的新get pvc -n monitoring

NAME                           STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
monitoring-claim               Pending                                                                        manual         31s

当我用PersistentVolume看我的kubectl get pv时,我可以看到它仍然可用:

NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS        CLAIM                                     STORAGECLASS   REASON    AGE
monitoring-volume                          50Gi       RWO            Retain           Available                                                                        16m

我原以为PersistentVolume不是Boundbut。当我使用与此名称相同的'PersistentVolumeClaim'时,会创建一个用PersistentVolumeClaim编写的新/tmp,因此不是很持久。

当我在没有命名空间的情况下为我的PersistentVolumeClaim执行相同的操作时,一切似乎都有效。

我在Ubuntu 18.04上使用minikube。

我需要更改什么才能将卷与声明连接?

kubernetes
1个回答
1
投票

当我回顾我的问题并将其与工作解决方案进行比较时,我注意到我错过了在没有我能够使用的命名空间的示例中设置为storageClassNamemanual

我更新的PersistentVolumenow看起来像这样:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: monitoring-volume
  labels:
    usage: monitoring
spec:
  storageClassName: manual
  capacity:
    storage: 50Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /data/k8data/monitoring

唯一的区别是

  storageClassName: manual

我的初步调查结果是,这是我所犯的愚蠢错误。

© www.soinside.com 2019 - 2024. All rights reserved.