我正在进行基于裸金属的k8s实例,并尝试使用k8s v1.14本地持久卷来创建一个使用postgres-operator的高可用性postgres部署。由于我在裸金属上运行,因此无法像教程中那样使用动态PVC。
首先,我创建了一些PV,这些PV绑定到主机节点上手动创建的卷。使用
然后,我按照此处文档,使用PVC将我的pod绑定到PV。
我发现k8s调度器将我的pod(绑定到
编辑:为了简化问题(向所有艺术家和建筑师道歉),当pod甚至不知道它绑定的PV时,它如何知道PV分配给哪个节点?
首先,我创建了一些PV,这些PV绑定到主机节点上手动创建的卷。使用
nodeAffinity
,将PV分配给特定的节点。例如,primary-vol
PV分配给node1
,replica-vol-1
分配给node2
等。然后,我按照此处文档,使用PVC将我的pod绑定到PV。
我发现k8s调度器将我的pod(绑定到
node1
上的PV)放置在node2
而不是我预期的node1
上。使用pod的亲和性,有没有一种方法可以确保pod被创建在与其绑定的PV相同的节点上?编辑:为了简化问题(向所有艺术家和建筑师道歉),当pod甚至不知道它绑定的PV时,它如何知道PV分配给哪个节点?
pod 有未绑定的立即 PersistentVolumeClaims(重复3次)
,但它也报告primary-pvc
为“已绑定”。 - Andrew Matthews