local-path-provisioner处理pvc和pv事件

v0.0.30

vendor/sigs.k8s.io/sig-storage-lib-external-provisioner/v10/controller/controller.go

syncClaim方法
1. 如果pvc上存在注解volume.kubernetes.io/storage-provisioner,那么需要供给卷。

should, err := ctrl.shouldProvision(ctx, claim)

2. 在指定节点上创建pod,完成创建pv本地存储,创建k8s pv资源。

status, err := ctrl.provisionClaimOperation(ctx, claim)

syncVolume方法
1. 如果pv是自己供给的,那么需要处理。

ctrl.isProvisionerForVolume(ctx, volume)

2. 增加或者删除pv上的finalizer。

volume, err := ctrl.handleProtectionFinalizer(ctx, volume)

3. 如果pv状态不是Released,或者策略不是Delete,那么不需要删除pv。

ctrl.shouldDelete(ctx, volume)

4. 在指定节点上创建pod,完成删除pv本地存储,删除k8s pv资源。

err = ctrl.deleteVolumeOperation(ctx, volume)

 

posted on 2025-09-15 09:27  王景迁  阅读(24)  评论(0)    收藏  举报

导航