关于k8s pv供应和bound

2024-12-25  本文已影响0人  wwq2020

pvc

针对pvc的Spec.VolumeName为空的

如果未找到volume

设置了classname且class的VolumeBindingMode为Immediate且volume.kubernetes.io/selected-node有值

查看PersistentVolumeController内置的dynamic provisioner plugin(实际上没有)

找到则通过plugin
未找到设置pvc的volume.kubernetes.io/storage-provisioner注解为class的provisioner,等待外部provisioner处理(外部provisioner负责创建设置了claimref的pv)

其他

设置pvc pending

找到volume

执行pvc/pv的bound(VolumeBindingMode为Immediate才会找到volume)

如果pvc的Spec.VolumeName有值

找到volume且volume的claimref无值

检查pv是否处于非deleting状态,pv大小是否大于pvc的storage requests,pv的classname是否和pvc的classname一致,pv和pvc的VolumeMode是否一致,pvc和pv的AccessModes是否一致
都满足则进行pvc/pv bound

找到volume且volume的claimref等于pvc

进行pvc/pv bound

其他

设置pvc pending

pv

针对设置了claimref的pv(WaitForFirstConsumer)

调度器调度pod时挑选节点后设置pvc的volumaName以及设置pv的claimref(随后PersistentVolumeController设置bound)

针对未设置claimref的pv(immediate)

调度器为pvc挑选合适的pv后设置pvc的volumaName以及设置pv的claimref(随后PersistentVolumeController设置bound)

其他

pv pending

上一篇 下一篇

猜你喜欢

热点阅读