Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

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

Open
WxySupn opened this issue Mar 7, 2021 · 2 comments

Comments

@WxySupn
Copy link

WxySupn commented Mar 7, 2021

问题描述

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

备注

@mjolnir-bot
Copy link
Collaborator

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

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

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

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

🦉 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

@ciiiii
Copy link

ciiiii commented Feb 20, 2022

问题描述

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
kubernetes/kubernetes#71761
有提出取代resync的方案,但没有实施

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants