OpenKruise kruise-rollout 有遇到过高频发生 failed to wait for rollout-controller caches to sync: timed out waiting for cache to be synced 这种问题么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
OpenKruise 的 kruise-rollout 组件在实际使用过程中,确实有可能出现类似 "failed to wait for rollout-controller caches to sync: timed out waiting for cache to be synced" 这样的问题。这个问题通常表示 kruise-rollout 控制器等待其内部缓存同步超时。
该错误通常与以下几种情况有关:
API Server 压力过大:如果 Kubernetes API Server 负载过高,响应延迟增大,可能导致控制器的缓存同步时间超出预期。
网络问题:控制器和 Kubernetes 集群之间的网络连接不稳定或存在延迟,也可能导致缓存同步超时。
资源限制:kruise-rollout 控制器所在 Pod 可能由于 CPU 或内存资源不足,无法及时完成缓存同步操作。
控制器内部错误:可能是 kruise-rollout 控制器自身的 bug 导致缓存同步失败。
解决这类问题可以尝试以下措施:
请注意,在部署和维护任何生产环境之前,都应充分了解组件的工作原理,并根据实际情况对资源、配置和网络等方面进行合理的规划和调整。
这种应该就是通用的。。。。是组件与 apiserver 同步数据有问题,一般都是 apiserver 限流、异常 之类的导致的,这是 kubebuilder 的通用报错。此回答整理自钉群“OpenKruise 社区交流群”
rollout-controller 无法及时同步缓存数据导致的。
在实际使用中,如果遇到了这个问题,可以尝试以下几种解决方案:
检查 Kubernetes 集群的网络连接,确保 kruise-rollout 组件与 Kubernetes API 服务器之间的网络连接正常。
检查 kruise-rollout 组件的日志,查看是否有其他异常信息。
尝试增加 rollout-controller 的缓存大小,以提高缓存同步的速度。可以通过修改 kruise-rollout 组件的配置文件来设置缓存大小。