sig-kubernetes icon indicating copy to clipboard operation
sig-kubernetes copied to clipboard

【提问】pv_controller中的resync协程是什么作用?为什么这么设计?

Open WxySupn opened this issue 4 years ago • 2 comments

问题描述

kube-controller中的pv_controller有三个协程:

  • resync:定期使用List方法,同步所有pvc到claimQueue,同步所有pv到volumeQueue;
  • volumeWorker:处理volumeQueue中的PV对象;
  • claimWorker:处理claimQueue中的PVC对象。

1)使用resync定期同步pvc和pv的必要性是什么?为什么这么设计?

2)在volumeWorker和claimWorker中,处理PV和PVC是异步的。因此,一些PV对象的处理失败,可能是对应PVC处理未完成导致的。所以,PV在处理失败的obj时,并未直接将其重新Add进volumeWorker队列,而是等待resync协程将其重新放入队列。此时,使用queue.AddRateLimited()这类方法,是不是也可以达到响应的目的?resync协程是否还有其他的作用?

环境信息

相关代码

pkg/controller/volume/persistentvolume

备注

WxySupn avatar Mar 07 '21 11:03 WxySupn

Hello, 我是云原生社区机器人妙尔尼尔(Mjölnir) @mjolnir-bot. 我将帮助你更好的来使用issue.

你似乎没有使用我们社区任何模板的格式填写问题。为了给你最好的帮助,我们建议您使用其中一种 templates.

可以联系社区管委会 或者SIG 核心人员,或者我的维护者:

  • @rootsongjc , @stevensu1977

如果我们在几个工作日内仍未回复你创建的issue,可以尝试以下方法:

:owl: Hoot! I am a [Mjölnir-Bot], a bot for cloudnativeto. My owner is stevensu1977.

_Originally posted by @mjolnir-bot in https://github.com/cloudnativeto

mjolnir-bot avatar Mar 07 '21 11:03 mjolnir-bot

问题描述

kube-controller中的pv_controller有三个协程:

* resync:定期使用List方法,同步所有pvc到claimQueue,同步所有pv到volumeQueue;

* volumeWorker:处理volumeQueue中的PV对象;

* claimWorker:处理claimQueue中的PVC对象。

1)使用resync定期同步pvc和pv的必要性是什么?为什么这么设计?

2)在volumeWorker和claimWorker中,处理PV和PVC是异步的。因此,一些PV对象的处理失败,可能是对应PVC处理未完成导致的。所以,PV在处理失败的obj时,并未直接将其重新Add进volumeWorker队列,而是等待resync协程将其重新放入队列。此时,使用queue.AddRateLimited()这类方法,是不是也可以达到响应的目的?resync协程是否还有其他的作用?

环境信息

相关代码

pkg/controller/volume/persistentvolume

备注

可以看看这个issue https://github.com/kubernetes/kubernetes/issues/71761 有提出取代resync的方案,但没有实施

ciiiii avatar Feb 20 '22 17:02 ciiiii