Kubernetes:PVC 绑定状态处于待定状态

IT_*_*ice 6 kubernetes

我创建了一个 PV 并通过 PVC 声明了 PV。我看到 PV 已创建,但 PVC 绑定状态停留在挂起状态。当我查看 describe pvc 输出时,我看到没有可用于此声明的持久卷,也没有设置存储类。从文档中我了解到存储类不是强制性的。所以,我不确定 PVC 文件中缺少什么。

apiVersion: v1

kind: PersistentVolume

metadata:
  name: pv-ghost
  labels:
    pv: pv-ghost

spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 3Gi

  hostPath:
    path: /ghost/data
--------------------------
apiVersion: v1

kind: PersistentVolumeClaim

metadata:
  name: pvc-ghost

spec:
  accessModes:
    - ReadWriteMany

  resources:
    requests:
      storage: 5Gi
  selector:
    matchLabels:
      pv: pv-ghost
Run Code Online (Sandbox Code Playgroud)

无法描述的 PV 和 PVC

    kubectl describe pv pv-ghost
    Name:            pv-ghost
    Labels:          pv=pv-ghost
    Annotations:     <none>
    Finalizers:      [kubernetes.io/pv-protection]
    StorageClass:
    Status:          Available
    Claim:
    Reclaim Policy:  Retain
    Access Modes:    RWX
    Capacity:        3Gi
    Node Affinity:   <none>
    Message:
    Source:
        Type:          HostPath (bare host directory volume)
        Path:          /ghost/data
        HostPathType:
    Events:            <none>
kubectl describe pvc pvc-ghost
Name:          pvc-ghost
Namespace:     default
StorageClass:
Status:        Pending
Volume:
Labels:        <none>
Annotations:   <none>
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events:
  Type       Reason         Age                  From                         Message
  ----       ------         ----                 ----                         -------
  Normal     FailedBinding  8m44s (x8 over 10m)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set
  Normal     FailedBinding  61s (x5 over 2m3s)   persistentvolume-controller  no persistent volumes available for this claim and no storage class is set
Mounted By:  <none>
Run Code Online (Sandbox Code Playgroud)

Cro*_*rou 2

您需要手动指定卷源。

ReadWriteMany 仅适用于AzureFile, CephFS, Glusterfs, Quobyte, NFS, PortworxVolume。还Flexvolume取决于VsphereVolumepod 并置时的驱动程序和工作原理。您可以在 Kubernetes 文档中阅读有关卷模式的全部内容

aws 的 PV 示例如下所示:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-volume
spec:
  capacity:
    storage: 15Gi # Doesn't really matter, as EFS does not enforce it anyway
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  mountOptions:
    - hard
    - nfsvers=4.1
    - rsize=1048576
    - wsize=1048576
    - timeo=300
    - retrans=2
  nfs:
    path: /
    server: fs-XXX.efs.eu-central-2.amazonaws.com
Run Code Online (Sandbox Code Playgroud)