如果设置minReadySeconds云效会等待它的的时间再下线老的Pod吗?[阿里云]

如果设置minReadySeconds的话 云效会等待minReadySeconds的时间再下线老的Pod吗?说错了是Appstack的分批部署 ,我们有些服务启动需要预热 且预热过程中 希望Pod运行一段时间后再下线老的pod。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在云效中,如果设置了 minReadySeconds,它会影响部署过程中的流量切换和旧 Pod 的下线时间。

    minReadySeconds 是一个用于控制新创建的 Pod 在就绪状态之前的等待时间的参数。当您设置了 minReadySeconds 后,云效会等待指定的时间,以确保新创建的 Pod 已经准备好接收流量,然后再开始进行流量切换和下线旧的 Pod。

    具体来说,以下是在设置了 minReadySeconds 时的部署过程:

    1. 创建新的 Pod。
    2. 等待 minReadySeconds 时间,以确保新 Pod 就绪。
    3. 开始将流量逐渐切换到新 Pod 上。
    4. 一旦新 Pod 接收到流量并确认正常工作,旧的 Pod 会被逐步下线。

    通过设置 minReadySeconds,可以防止在新 Pod 尚未完全就绪时就开始将流量切换到它上面,从而避免可能的故障或不稳定性。

  2. 在AppStack中,如果你设置了minReadySeconds参数,它会确保新创建的Pod至少运行指定的时间后才被视为可用。这有助于确保服务已经正确地预热,并且能够处理流量。

    然而,对于分批部署和下线旧Pod的行为,可能不会直接与minReadySeconds相关联。通常,在分批部署期间,新的Pod会被逐渐创建并启动,而旧的Pod会在达到一定的阈值(如已部署的新Pod数量)时开始被逐个下线。

  3. minReadySeconds 影响的其实是 pod 自身的 available,不过目前开源分批发布工具主要考虑的是 readiness,所以这个参数应该暂时没法干预分批发布

    一种可能的方向是看看 initialDelaySeconds 能不能行,这个参数会延迟探活的启动
    有关 pod availability vs. readiness 的事情,我们会结合开源工具的实际用法再考虑;实操上两个按说都该是可选择的。此回答整理自钉群“云效交付域答疑群”