深究Kubernetes源碼-存儲(chǔ)-5 Kubelet VolumeManager機(jī)制流程分析
分析基于kubernetes v1.26?
Kubelet Volume相關(guān)邏輯主要在VolumeManager模塊中,類(lèi)圖如下:

其核心邏輯為Reconciler.Run/DesiredStateOfWorldPopulator.Run協(xié)程,從PodManager中根據(jù)Pod.Volume信息調(diào)用OperationExecutor進(jìn)行Mount/Unmount等Volume操作。

mountOrAttachVolumes核心從DesiredStateOfWorld中取出需要掛載的Volume,對(duì)比ActualStateOfWorld中Volume與Pod掛載狀態(tài),根據(jù)情況執(zhí)行掛載/等待掛載/擴(kuò)展Volume,

mountAttachedVolumes即Kubelet的Volume掛載流程,根據(jù)《2 Volume Plugin機(jī)制》調(diào)用OperationExecutor執(zhí)行MountVolume,如下圖是CSI VolumePlugin的詳細(xì)流程,與一般intree區(qū)別在于,kubelet需要根據(jù)csi driver調(diào)用csi plugin注冊(cè)到kubelet的gRPC endpoint

標(biāo)簽: