首页 > 解决方案 > 节点找不到要绑定的可用持久卷

问题描述

我收到错误

1 个节点未找到要绑定的可用持久卷。

在创建我的 pod 以附加到持久存储时。

我在下面进行了设置。

PersistentVolumeStorageClass成功创建和附加。一旦我创建了 PersistentVolumeClaim,它就会等待“挂起”状态,这是预期的(我相信),因为它等待一个 pod 连接,因为WaitForFirstConsumer.StorageClass

apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-local-pv
spec:
  capacity:
    storage: 2Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: local-storage
  local:
    path: /home/aozdemir/k8s
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - my-node
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: example-local-claim
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 2Gi
---
kind: Pod
apiVersion: v1
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
       claimName: example-local-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

我的问题是,在我创建 Pod 之后,它会给出以下警告:

0/1 个节点可用:1 个节点未找到要绑定的可用持久卷。

这是屏幕截图:

在此处输入图像描述

我在这里错过了什么吗?

标签: kubernetes

解决方案


这是我的错。由于以下博客文章:https ://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/

请注意,PersistentVolume 对象中有一个新的nodeAffinity字段:这是 Kubernetes 调度程序理解此 PersistentVolume 绑定到特定节点的方式。nodeAffinity 是 本地 PersistentVolumes 的必填字段

我的值不正确。我将其更改为我的节点名称,并重新部署,它工作。


推荐阅读