无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

深究Kubernetes源碼-存儲(chǔ)- 1 Volume Plugin機(jī)制流程分析

2022-09-09 14:23 作者:黑暗光影DIY  | 我要投稿

分析基于kubernetes v1.26

1.1 Volume Plugin接口

k8s volume核心機(jī)制實(shí)現(xiàn)在k8s.io/kubernetes/pkg/volume包中, csi是其中一種plugin,組件在啟動(dòng)時(shí)都會(huì)通過(guò)VolumePluginMrg加載和管理需要的VolumePlugin。

VolumePlugin為接口,并有派生接口,例如csi plugin,實(shí)現(xiàn)了DeviceMountable/NodeExpandable/BlockVolume/Attachable。

PersistenVolumeController加載需要的VolumePlugin?

k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go

AttachDetachController加載需要的VolumePlugin?

k8s.io/kubernetes/cmd/kube-controller-manager/app/plugins.go

kubelet加載需要的VolumePlugin?

k8s.io/kubernetes/cmd/kubelet/app/plugins.go


1.2 Volume Plugin Manager

VolumePluginMgr以map[string]VolumePlugin形式存儲(chǔ)VolumePlugin,key為PluginName,例如"kubernetes.io/csi",在初始化時(shí),通過(guò)調(diào)用VolumePlugin.GetPluginName()方法獲取。

PluginManager初始化時(shí)依次調(diào)用加載的plugin.Init(),完成Plugin的初始化。

k8s.io/kubernetes/pkg/volume/plugins.go

在處理Volume時(shí),通過(guò)FindPluginBySpec確定使用什么VolumePlugin處理

其中關(guān)鍵為調(diào)用VolumePlugin.CanSupport確定對(duì)應(yīng)VolumePlugin支持對(duì)應(yīng)Volume類型,例如CSI VolumePlugin處理包含CSI field的PV

1.3 Operation Executor/Generator

對(duì)Volume/Device的操作都是通過(guò)OperationExecutor發(fā)起,核心包括AttachVolume/DetachVolume,MountVolume/UmountVolume,UnmountDevice,OperationExecutor通過(guò)OperationGenerator調(diào)用Plugin NewAttacher/NewDetacher,NewMounter/NewUnmounter,生成對(duì)應(yīng)Attacher/Mapper/Mounter,如CSI Plugin分別為csiAttacher/csiMounterMgr/csiBlockMapper。


深究Kubernetes源碼-存儲(chǔ)- 1 Volume Plugin機(jī)制流程分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
卢氏县| 登封市| 大渡口区| 洛宁县| 澎湖县| 呼玛县| 科尔| 阿拉善盟| 梅河口市| 沭阳县| 兴城市| 敖汉旗| 板桥市| 沿河| 元阳县| 石嘴山市| 宜良县| 青田县| 鄂尔多斯市| 蒙自县| 连城县| 柏乡县| 汉源县| 桐城市| 高密市| 青龙| 南和县| 汶川县| 右玉县| 仪陇县| 锦州市| 凤凰县| 屯留县| 桃源县| 手游| 浮梁县| 齐河县| 衡东县| 贡觉县| 永丰县| 延川县|