开发者社区 > 云原生 > 容器服务 > 正文

OpenKruise中endpoint摘流问题怎么解决?

"OpenKruise中endpoint摘流问题
滚动部署:endpoint监听pod删除事件,当有删除事件时,endpoint会在svc后端被摘除掉,然后走preStop优雅下线流量无损。
原地部署:那么就不会有这个事件,先执行preStop(1s执行完),然后这时业务会识别sigterm信号开始退出,这时候就绪探针需要3次才失败,例如每次5s,那么是不是需要等就绪探针识别,才会摘除endpoint,这时候14s之内还是会有流量进来。"

展开
收起
十一0204 2023-10-24 20:26:34 85 0
5 条回答
写回答
取消 提交回答
  • OpenKruise的endpoint摘流问题主要出现在滚动部署和原地部署中。在滚动部署中,当有pod删除事件发生时,endpoint会在svc后端被摘除掉,然后执行preStop优雅下线,流量无损。然而,在原地部署中,由于不存在pod删除事件,业务会识别sigterm信号开始退出,这时候就绪探针需要3次才失败,例如每次5s。为了解决这个问题,您可能需要等待就绪探针识别后才会摘除endpoint,这样在14s之内仍然会有流量进来。

    2023-10-26 14:41:07
    赞同 展开评论 打赏
  • 是的,你的理解是对的。在原地部署的情况下,endpoint会在preStop阶段被摘除,而这个阶段需要一定的时间来完成。在这段时间内,新的pod还没有准备好接收到流量,所以可能会有一段时间的流量中断。
    为了避免这种情况,可以在preStop阶段做一些额外的操作,例如提前停止服务,或者将流量导向其他节点。这样可以确保在endpoint被摘除之前,流量已经被正确地路由到了其他地方,从而避免了流量中断的问题。

    2023-10-25 16:09:46
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在OpenKruise中,endpoint摘流的问题主要与滚动部署和原地部署的差异有关。滚动部署时,endpoint会监听pod删除事件,并在svc后端被摘除掉,然后走preStop优雅下线流量无损。而在原地部署时,由于没有删除事件,endpoint会先执行preStop(1s执行完),然后就绪探针需要3次才失败,这样就可能会导致14s之内还有流量进来。为了避免这个问题,建议在原地部署时,使用就绪探针并设置合理的超时时间,以确保endpoint能够在业务退出之前被摘除掉。

    2023-10-25 14:02:57
    赞同 1 展开评论 打赏
  • 在OpenKruise中,endpoint摘流问题主要涉及到两种部署方式:滚动部署和原地部署。

    1. 滚动部署:在这种部署方式下,endpoint会监听pod的删除事件。当有删除事件发生时,endpoint会在Service后端被摘除,然后执行preStop优雅下线流量无损。这种情况下,流量不会受到影响,因为Pod已经被摘除,所以不需要等待就绪探针识别。

    2. 原地部署:在这种部署方式下,没有监听pod的删除事件。首先执行preStop(1s执行完),然后业务开始识别sigterm信号并退出。这时候就绪探针需要3次才失败,例如每次5s。在这种情况下,可能需要等待就绪探针识别,才会摘除endpoint。但是,由于已经发生了Pod的删除事件,所以14s之内仍然会有流量进来。

    总之,在OpenKruise中,endpoint摘流问题主要取决于部署方式。对于滚动部署,流量不会受到影响;而对于原地部署,可能需要等待就绪探针识别才能摘除endpoint。

    2023-10-25 11:00:58
    赞同 1 展开评论 打赏
  • 意中人就是我呀!

    pod ready 后才会引流,配置好就绪探针就行,假如没有就绪探针Running既Ready。此答案整理至钉群“OpenKruise 社区交流群”

    2023-10-24 21:06:11
    赞同 1 展开评论 打赏
问答分类:

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载