无法将 PersistentVolumeClaim 绑定到命名空间中的 PersistentVolume

Cannot bind PersistentVolumeClaim to PersistentVolume in namespace

我正在尝试在 jenkins 命名空间下的 kubernetes 集群上安装 jenkins。当我部署我的 pv 和 pvc 时,pv 仍然可用并且不绑定到我的 pvc。

这是我的 yaml:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins
  labels:
    type: jenkins
spec:
  storageClassName: standard
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

下面是我的存储class手册。标准 class 没有改变,应该和 kubernetes 上的默认标准一样。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"manual"},"provisioner":"kubernetes.io/no-provisioner","volumeBindingMode":"WaitForFirstConsumer"}
  creationTimestamp: "2021-06-14T14:41:39Z"
  name: manual
  resourceVersion: "3643100822"
  uid: 8254d900-58e5-49e1-a07e-1830096aac87
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

根据存储 class 规范,我认为问题是 volumeBindingMode 被设置为 WaitForFirstConsumer 这意味着 PV 将保持未绑定状态,直到有一个 Pod 来使用它.

您可以更改它Immediate以允许立即绑定 PV,而无需创建 Pod。

您可以在 docs 中详细了解不同的卷绑定模式。