kubernetes - 节点找不到要绑定的可用持久卷
问题描述
我收到错误
1 个节点未找到要绑定的可用持久卷。
在创建我的 pod 以附加到持久存储时。
我在下面进行了设置。
PersistentVolume
并StorageClass
成功创建和附加。一旦我创建了 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 个节点未找到要绑定的可用持久卷。
这是屏幕截图:
我在这里错过了什么吗?
解决方案
这是我的错。由于以下博客文章:https ://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/
请注意,PersistentVolume 对象中有一个新的nodeAffinity字段:这是 Kubernetes 调度程序理解此 PersistentVolume 绑定到特定节点的方式。nodeAffinity 是 本地 PersistentVolumes 的必填字段。
我的值不正确。我将其更改为我的节点名称,并重新部署,它工作。
推荐阅读
- docker - 从 dockerhub webhooks 触发管道作业
- scala - 使用 Spark 中的分析语句计算统计信息
- mysql - Entity Framework:如何在 Entity Framework Core 2.x 中应用特定于提供程序的模型更改?
- sql-server - 如何修复数据流任务错误
- pdf - 如何在 NetSuite 的高级 PDF 模板中插入自定义字段?
- android - 如何从android pie中的内容uri获取文件路径
- go - 使用 go mod 时如何解决“模糊导入”?
- sql-server - 我可以在 sql 游标中使用 sql 递归吗?
- ios - Swift 中的“mutating”函数和“inout”参数有什么区别吗?
- javascript - 如何使用javascript在饼图标题中添加字体真棒图标