Kubernetes Pod不会调度到具有本地PV的节点。。持久卷声明不会绑定到本地持久卷
我正在尝试将mongo安排到集群(卡塔尔)中的给定节点 我在pod描述中看到以下错误消息:Kubernetes Pod不会调度到具有本地PV的节点。。持久卷声明不会绑定到本地持久卷,kubernetes,persistent-volumes,persistent-volume-claims,Kubernetes,Persistent Volumes,Persistent Volume Claims,我正在尝试将mongo安排到集群(卡塔尔)中的给定节点 我在pod描述中看到以下错误消息: Warning FailedScheduling 58m default-scheduler 0/7 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 6 node(s) didn't find available persist
Warning FailedScheduling 58m default-scheduler 0/7 nodes are available: 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate, 6 node(s) didn't find available persistent volumes to bind.
Mongo依赖于以下2项索赔:
[dsargrad@malta cfg]$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-volume-learning-center-mongodb-0 Pending local-storage 3m57s
logs-volume-learning-center-mongodb-0 Pending local-storage 3m57s
[dsargrad@malta cfg]$ kubectl describe pvc data-volume-learning-center-mongodb-0
Name: data-volume-learning-center-mongodb-0
Namespace: default
StorageClass: local-storage
Status: Pending
Volume:
Labels: app=learning-center-mongodb-svc
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Used By: learning-center-mongodb-0
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal WaitForFirstConsumer 4m45s persistentvolume-controller waiting for first consumer to be created before binding
Normal WaitForPodScheduled 12s (x19 over 4m42s) persistentvolume-controller waiting for pod learning-center-mongodb-0 to be scheduled
它们使用“本地”存储。。在qatar.corp.sensis.com节点上
[dsargrad@malta cfg]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
benin.corp.sensis.com Ready <none> 45h v1.20.5
chad.corp.sensis.com Ready <none> 45h v1.20.5
malta.corp.sensis.com Ready control-plane,master 45h v1.20.5
qatar.corp.sensis.com Ready <none> 45h v1.20.5
spain.corp.sensis.com Ready <none> 45h v1.20.5
togo.corp.sensis.com Ready <none> 45h v1.20.5
tonga.corp.sensis.com Ready <none> 45h v1.20.5
我的本地存储类:
[dsargrad@malta cfg]$ kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local-storage (default) kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 4h22m
以下是数据PV的说明
[dsargrad@malta cfg]$ kubectl describe pv mongo-data-pv
Name: mongo-data-pv
Labels: app=learning-center-mongodb-svc
Annotations: <none>
Finalizers: [kubernetes.io/pv-protection]
StorageClass: local-storage
Status: Available
Claim: default/data-volume-learning-center-mongodb-0
Reclaim Policy: Retain
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 1Gi
Node Affinity:
Required Terms:
Term 0: kubernetes.io/hostname in [qatar.corp.sensis.com]
Message:
Source:
Type: LocalVolume (a persistent volume backed by local storage on a node)
Path: /home/storage/mongo/data
Events: <none>
[dsargrad@maltacfg]$kubectl描述pv mongo数据pv
名称:mongo data pv
标签:app=学习中心mongodb svc
注释:
终结器:[kubernetes.io/pv保护]
StorageClass:本地存储
状态:可用
声明:默认/数据量学习中心mongodb-0
回收策略:保留
访问模式:RWO
VolumeMode:文件系统
容量:1Gi
节点关联:
所需条款:
术语0:kubernetes.io/hostname在[kartar.corp.sensis.com]中
信息:
资料来源:
类型:LocalVolume(由节点上的本地存储支持的持久卷)
路径:/home/storage/mongo/data
活动:
还有日志
[dsargrad@malta cfg]$ kubectl describe pv mongo-logs-pv
Name: mongo-logs-pv
Labels: app=learning-center-mongodb-svc
Annotations: <none>
Finalizers: [kubernetes.io/pv-protection]
StorageClass: local-storage
Status: Available
Claim: default/logs-volume-learning-center-mongodb-0
Reclaim Policy: Retain
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 1Gi
Node Affinity:
Required Terms:
Term 0: kubernetes.io/hostname in [qatar.corp.sensis.com]
Message:
Source:
Type: LocalVolume (a persistent volume backed by local storage on a node)
Path: /home/storage/mongo/logs
Events: <none>
[dsargrad@maltacfg]$kubectl描述pv mongo日志pv
名称:mongo logs pv
标签:app=学习中心mongodb svc
注释:
终结器:[kubernetes.io/pv保护]
StorageClass:本地存储
状态:可用
声明:默认/logs-volume-learning-center-mongodb-0
回收策略:保留
访问模式:RWO
VolumeMode:文件系统
容量:1Gi
节点关联:
所需条款:
术语0:kubernetes.io/hostname在[kartar.corp.sensis.com]中
信息:
资料来源:
类型:LocalVolume(由节点上的本地存储支持的持久卷)
路径:/home/storage/mongo/logs
活动:
在节点qatar.corp.sensis.com上,我有PV中引用的文件夹
为什么qatar.corp.sensis.com的pod时间表和PVC不能绑定到PVs?我做了一个愚蠢的假设,如果PVC声明了一个尺寸,我会在描述命令的输出中看到这一点。我必须获得PVC规范的yaml,以确保其要求的数量超过PV分配的数量 我现在已成功绑定
[dsargrad@malta cfg]$ kubectl apply -f *logs* --namespace default
persistentvolume/mongo-logs-pv configured
[dsargrad@malta cfg]$ kubectl apply -f *data* --namespace default
persistentvolume/mongo-data-pv configured
[dsargrad@malta cfg]$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-volume-learning-center-mongodb-0 Bound mongo-data-pv 10Gi RWO local-storage 98m
logs-volume-learning-center-mongodb-0 Bound mongo-logs-pv 10Gi RWO local-storage 98m
通过仔细查看PVC规格,我找到了所需的细节。
有趣的是,是youtube上的视频让我猜到了答案。见时间从6:50左右开始
在以下注释中,存储大小为“2G”
我做出了愚蠢的假设,如果PVC声明了一个大小,我会在descripe命令的输出中看到它。我必须获得PVC规范的yaml,以确保其要求的数量超过PV分配的数量 我现在已成功绑定
[dsargrad@malta cfg]$ kubectl apply -f *logs* --namespace default
persistentvolume/mongo-logs-pv configured
[dsargrad@malta cfg]$ kubectl apply -f *data* --namespace default
persistentvolume/mongo-data-pv configured
[dsargrad@malta cfg]$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-volume-learning-center-mongodb-0 Bound mongo-data-pv 10Gi RWO local-storage 98m
logs-volume-learning-center-mongodb-0 Bound mongo-logs-pv 10Gi RWO local-storage 98m
通过仔细查看PVC规格,我找到了所需的细节。
有趣的是,是youtube上的视频让我猜到了答案。见时间从6:50左右开始
在以下注释中,存储大小为“2G”
你好,弗洛,是的。我知道他们正处于待审状态。。这就是我问题的实质。我已经创建了两个PV,我认为它们应该像上面描述的那样绑定。我有相当多的PVs和PVC经验。。在过去,我使用CEPH RBD作为我的供应商。这是我第一次使用“本地”PV。你能描述PV mongo data PV
kubectl并看看PV是在什么节点上吗?嗨,Jonas(@Jonas)。。我只是在问题的底部加了这个。@DavidSargrad抱歉,我删除了我的评论,因为我回答得太快了,抱歉。我也不太习惯这些类型的PV。大多数时候,我会将它绑定到云存储。我还在调查中,希望我能帮上忙:)@Flo嗨,两年前我第一次使用K8S时。。NFS是我的起点(当时我使用NFS客户机provisioner)。我最终搬到了CEPH。在这个特殊的例子中,我的目标是使用“本地”存储。。NFS不是我的选择。现在我想依靠本地存储。。直到我让rook在集群中运行。所以我真的很想弄明白为什么mongo吊舱不会安排时间。我认为我创建的2个PV应该分配到卡塔尔,pod应该安排到卡塔尔,最后2个mongo PVC应该绑定。Hi@Flo是的。我知道他们正处于待审状态。。这就是我问题的实质。我已经创建了两个PV,我认为它们应该像上面描述的那样绑定。我有相当多的PVs和PVC经验。。在过去,我使用CEPH RBD作为我的供应商。这是我第一次使用“本地”PV。你能描述PV mongo data PVkubectl并看看PV是在什么节点上吗?嗨,Jonas(@Jonas)。。我只是在问题的底部加了这个。@DavidSargrad抱歉,我删除了我的评论,因为我回答得太快了,抱歉。我也不太习惯这些类型的PV。大多数时候,我会将它绑定到云存储。我还在调查中,希望我能帮上忙:)@Flo嗨,两年前我第一次使用K8S时。。NFS是我的起点(当时我使用NFS客户机provisioner)。我最终搬到了CEPH。在这个特殊的例子中,我的目标是使用“本地”存储。。NFS不是我的选择。现在我想依靠本地存储。。直到我让rook在集群中运行。所以我真的很想弄明白为什么mongo吊舱不会安排时间。我认为我创建的2个PV应该分配到卡塔尔,pod应该安排到卡塔尔,最后2个mongo PVC应该绑定。干得好,很高兴你修复了它。我会尽量记住的,以防发生在我身上hehe@Flo .. 我感谢你的反馈!干得好,很高兴你修好了。我会尽量记住的,以防发生在我身上hehe@Flo .. 我感谢你的反馈!
[dsargrad@malta cfg]$ kubectl describe pv mongo-logs-pv
Name: mongo-logs-pv
Labels: app=learning-center-mongodb-svc
Annotations: <none>
Finalizers: [kubernetes.io/pv-protection]
StorageClass: local-storage
Status: Available
Claim: default/logs-volume-learning-center-mongodb-0
Reclaim Policy: Retain
Access Modes: RWO
VolumeMode: Filesystem
Capacity: 1Gi
Node Affinity:
Required Terms:
Term 0: kubernetes.io/hostname in [qatar.corp.sensis.com]
Message:
Source:
Type: LocalVolume (a persistent volume backed by local storage on a node)
Path: /home/storage/mongo/logs
Events: <none>
[dsargrad@malta cfg]$ kubectl apply -f *logs* --namespace default
persistentvolume/mongo-logs-pv configured
[dsargrad@malta cfg]$ kubectl apply -f *data* --namespace default
persistentvolume/mongo-data-pv configured
[dsargrad@malta cfg]$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-volume-learning-center-mongodb-0 Bound mongo-data-pv 10Gi RWO local-storage 98m
logs-volume-learning-center-mongodb-0 Bound mongo-logs-pv 10Gi RWO local-storage 98m
[dsargrad@malta cfg]$ kubectl get pvc logs-volume-learning-center-mongodb-0 -o yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: "2021-03-31T15:55:40Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
app: learning-center-mongodb-svc
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:labels:
.: {}
f:app: {}
f:spec:
f:accessModes: {}
f:resources:
f:requests:
.: {}
f:storage: {}
f:volumeMode: {}
f:status:
f:phase: {}
manager: kube-controller-manager
operation: Update
time: "2021-03-31T15:55:40Z"
name: logs-volume-learning-center-mongodb-0
namespace: default
resourceVersion: "302313"
uid: 09ef80fe-a45e-45e4-b515-9746b9265476
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2G
storageClassName: local-storage
volumeMode: Filesystem
status:
phase: Pending