contoler结构有个queue,这个queue是用来控制的,是将读取队列pop,执行process函数的,而controler的成员reflector使用来缓存资源的,他会出发listerandwatche过1s通过lister函数监控一次所有关心的对象(wait.Until会一直执行,等到入参函数执行完成后,peroid时间后再次触发执行,这样不停地一直运行),然后阻塞等待,等待watcher 有事件发生,进行处理,然后1s中后再次执行listerandwatche。

// Until loops until stop channel is closed, running f every period.
// Until is syntactic sugar on top of JitterUntil with zero jitter
// factor, with sliding = true (which means the timer for period
// starts after the f completes).
func Until(f func(), period time.Duration, stopCh <-chan struct{}) {
   JitterUntil(f, period, 0.0, true, stopCh)
}
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐