Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

kube-cloud-controller.service 持续对 cloud provider 抛出错误的函数重试,陷入死循环。 #84

Closed
wccsama opened this issue May 24, 2019 · 2 comments
Assignees

Comments

@wccsama
Copy link
Contributor

wccsama commented May 24, 2019

复现步骤:
1.将load_balancer.go的第219行,return nil 改为 return err。
2.创建LB时,指定BLB(该BLB未绑定EIP),指定错误的EIP。
3.删除该LB。

结果:
1.读取kube-cloud-controller.service的log,不断retry删除。

目前实现的隐患:用户使用正确的EIP,解除绑定时,解绑失败,程序会正常退出,用户得不到解绑失败的信息。

@hello2mao
Copy link
Contributor

结果:
1.读取kube-cloud-controller.service的log,不断retry删除。

需要阅读k8s源码,
(1)解释k8s retry的原因?
(2)我们应该返回err还是nil,即正确处理的方式是什么

@wccsama
Copy link
Contributor Author

wccsama commented Jun 17, 2019

结果:
1.读取kube-cloud-controller.service的log,不断retry删除。

需要阅读k8s源码,
(1)解释k8s retry的原因?
(2)我们应该返回err还是nil,即正确处理的方式是什么

(1)在service-controller中有个syncService函数会执行删除新建LB的任务,一旦执行出错,会将syncService当前执行的work重新添加回队列中,下次不论其他work怎么添加到队列中,都会先执行因为出错添加到队列的work,这样一旦报错会一直尝试执行出错的work。(重启service可删除该work)
(2)建议对出错的信息进行处理后,判断输出err 或者 nil。

@wccsama wccsama closed this as completed Jun 25, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants