k8s中的PVC为何需要延迟绑定?(WaitForFirstConsumer)

这篇具有很好参考价值的文章主要介绍了k8s中的PVC为何需要延迟绑定?(WaitForFirstConsumer)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

有一个pod, 使用的pvc叫pvc-1, 我们希望它只运行在node-2上,在当前的集群中存在两台主机符合pod的pvc的要求, 假如node-1上是pv-1, node-2上是pv-2,这两个完全一样.
这时如果创建pod, pv控制器看到pv-1与pvc-1是匹配的,因此将它们绑定在一起, 如果没有其它限制条件, 在调度阶段pod将会被调度到node-1上, 这显然与我们的期望不同,我们是希望它调度到node-2上,pv与pvc的绑定关系是发生在调度之前的,就会造成pv与pvc的绑定成功, 但是pod的调度却不能成功的局面

为什么需要延迟绑定

当没有延迟绑定的时候,pvc会首先绑定pv再进行调度,这也说明了CSI先于CRI。
所以需要一种机制来将这种绑定延迟到调度阶段,这就是WaitForFirstConsumer的作用

延迟绑定的原理

总结起来就是将CSI延迟到调度之后进行

WaitForFirstConsumer其实就是告诉volume控制器,虽然找到了适合的pv, 但请不要现在就执行绑定操作,而要等到第一个声明使用了该pvc的pod出现在调度器之后,调度器综合考虑所有的调度规则后, 最终决定跟哪个pv进行绑定

通过这个延迟绑定机制,原本实时发生的 PVC 和 PV 的绑定过程,就被延迟到了 Pod 第一次调度的时候在调度器中进行,从而保证了这个绑定结果不会影响 Pod 的正常调度

storgeageClass yaml配置

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: nfs-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

对应的就是最后那个参数:文章来源地址https://www.toymoban.com/news/detail-622765.html

  • 即刻绑定
  • 首次使用时绑定
    k8s中的PVC为何需要延迟绑定?(WaitForFirstConsumer),# k8s,kubernetes,容器,云原生
    – update 2023年8月24日15:34:23
    云提供商也提供了延迟绑定
 ~]# k get sc
NAME                 PROVISIONER                     RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
csi-disk             everest-csi-provisioner         Delete          Immediate              true                   6d21h
csi-disk-topology    everest-csi-provisioner         Delete          WaitForFirstConsumer   true                   6d21h
csi-local            everest-csi-provisioner         Delete          Immediate              false                  6d21h
csi-local-topology   everest-csi-provisioner         Delete          WaitForFirstConsumer   false                  6d21h
csi-nas              everest-csi-provisioner         Delete          Immediate              true                   6d21h
csi-obs              everest-csi-provisioner         Delete          Immediate              false                  6d21h
csi-sfs              everest-csi-provisioner         Delete          Immediate              false                  6d21h
csi-sfsturbo         everest-csi-provisioner         Delete          Immediate              true                   6d21h
efs-performance      flexvolume-huawei.com/fuxiefs   Delete          Immediate              true                   6d21h
efs-standard         flexvolume-huawei.com/fuxiefs   Delete          Immediate              true                   6d21h
nfs-rw               flexvolume-huawei.com/fuxinfs   Delete          Immediate              true                   6d21h
obs-standard         flexvolume-huawei.com/fuxiobs   Delete          Immediate              false                  6d21h
obs-standard-ia      flexvolume-huawei.com/fuxiobs   Delete          Immediate              false                  6d21h
sas                  flexvolume-huawei.com/fuxivol   Delete          Immediate              true                   6d21h
sata                 flexvolume-huawei.com/fuxivol   Delete          Immediate              true                   6d21h
ssd                  flexvolume-huawei.com/fuxivol   Delete          Immediate              true                   6d21h

到了这里,关于k8s中的PVC为何需要延迟绑定?(WaitForFirstConsumer)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【K8S系列】深入解析K8S中PV 和PVC

    在 Kubernetes 中,PV(持久卷)和 PVC(持久卷声明)之间的关系是一种动态匹配和绑定关系,用于实现 Pod 与存储资源的解耦。 PV 是集群中的一块网络存储,它独立于 Pod 存在。PV 可以是各种存储系统,如云提供商的存储、NFS、iSCSI、本地存储等。 管理员负责创建 PV,并配置其

    2024年04月23日
    浏览(46)
  • k8s pv与pvc

    1.前言 PV 是 Kubernetes 集群中的一种资源对象,它代表着一块物理存储设备,例如磁盘、网络存储或云存储等。PV 可以被多个 Pod 共享,并且可以独立于 Pod 存在。PV 可以配置不同的访问模式 (Access Modes),例如 ReadWriteOnce 、 ReadOnlyMany 或 ReadWriteMany ,以确定 PV 可以被多少个 Pod 同

    2024年01月21日
    浏览(55)
  • PV & PVC in K8s

    在Kubernetes中,PV(Persistent Volume)和PVC(Persistent Volume Claim)是用于管理持久化存储的重要资源对象。PV表示存储的实际资源,而PVC表示对PV的声明性要求。当应用程序需要使用持久化存储时,它可以通过创建PVC来请求和使用PV。以下是使用PV和PVC时的一些注意事项: 定义存储类

    2024年02月09日
    浏览(31)
  • k8s ------存储卷(PV、PVC)

    目录 一:为什么需要存储卷? 二:emptyDir存储卷  ​三:hostPath存储卷  四:nfs共享存储卷   五:PVC 和 PV 1、PVC 和 PV介绍 2、PV和PVC之间的相互作用遵循的生命周期 3、PV 的4 种状态 4、一个PV从创建到销毁的具体流程 六:静态创建pv和pvc资源由pod运用过程 ​1、配置nfs存储 ​

    2024年02月13日
    浏览(47)
  • k8s--动态pvc和pv

    目录 前情回顾 动态pv 实验模拟 步骤一:在stor01节点上安装nfs,并配置nfs服务 接下来在matser01上配置 步骤二:创建 Service Account,用来管理 NFS Provisioner 在 k8s 集群中运行的权限和动态规则 步骤三:使用 Deployment 来创建 NFS Provisioner  部署nfs-provisioners插件: 步骤四:创建 St

    2024年01月24日
    浏览(52)
  • k8s里pv pvc configmap

    通过storageClassName 将PV 和PVC 关联起来。

    2024年02月11日
    浏览(33)
  • k8s教程(Volume篇)-PVC详解

    声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》的读书笔记 在上一篇博客《k8s教程(Volume篇)-PV详解》,我们了解了持久卷的工作原理,本文继续深入学习PVC。 PVC 作为用户对存储资源的需求申请 ,主要涉及 存储空间请求 、 访问模式 、 PV选择条

    2024年02月09日
    浏览(44)
  • k8s 存储卷和pvc,pv

    存储卷---数据卷 容器内的目录和宿主机的目录进行挂载。 容器在系统上的生命周期是短暂的,deletek8s用控制器创建的pod,delete相当于重启,容器的状态也会回复到初始状态。 一旦回到初始状态,所有的后天编辑的文件的都会消失。 容器容器和节点之间创建一个可以持久化保

    2024年01月16日
    浏览(51)
  • k8s~动态生成pvc和pv

    有时,我们不想手动建立pv和pvc,这时,我们可以通过strongClass存储类来帮我们实现,动态建立pvc,并动态为它分配pv存储空间,我们以nfs为例,说一下动态分配在nfs存储截至上建立pv的方式。 StorageClass和PVC及PV 集群权限与绑定rbac.yaml 建立动态pvc的provisioner.yaml 建立strongClass的

    2024年02月03日
    浏览(48)
  • K8s---存储卷(动态pv和pvc)

    当我要发布pvc可以生成pv,还可以共享服务器上直接生成挂载目录。pvc直接绑定pv。 1、卷插件:k8s本生支持的动态pv创建不包括nfs,需要声明和安装一个外部插件 Provisioner: 存储分配器。动态创建pv,然后根据pvc的请求自动绑定和使用。 2、StorageClass:来定义pv的属性,存储类型

    2024年01月21日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包