我发现OpenKruise inplace-update会计算是否只有image更新,?

我发现OpenKruise inplace-update会计算是否只有image更新,跟vscale判断是否只有resource更新的逻辑相近,为了简化复杂度会不会将vscale放入update中会更好一些,然后也不阻塞其他的update,如果在vscale过程中接收到update的话就相当于vscale成功(restart出来的pod肯定能符合resource)6ddeb8e4a8baeb2e1d9668dec7389249.png
想改造一下这个CalculateSpec方法,在开启workload垂直扩缩容的特性门时判断是否只有resource字段被修改
我自己试了一下在k8s中允许在Pod垂直扩缩容过程中继续update重启Pod的,workload也维持这种方式可能更合理一些?

展开
收起
真的很搞笑 2023-08-01 19:58:24 135 分享 版权
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    OpenKruise 的 in-place update 功能确实会检测是否只有镜像更新,并根据这个判断来决定是否执行 in-place 更新。它的设计初衷是为了在应用程序更新时尽可能地减少停机时间,只对镜像进行更新而不影响其他资源。

    相比之下,vscale(Vertical Scaling)是 OpenKruise 的另一个功能,用于在不停止 Pod 的情况下调整资源(如 CPU、内存等)的配置。它与 in-place update 的目标有所不同,主要关注资源的调整,而不是镜像的更新。

    将 vscale 作为 in-place update 的一部分并不是 OpenKruise 目前的设计方式。in-place update 专注于镜像的更新,而 vscale 专注于资源的调整。将两者结合可能会增加复杂性,并引入不必要的依赖关系和风险。

    如果你希望在 vscale 过程中接收到 in-place update,并将其视为 vscale 成功,你可以在应用程序级别处理这个逻辑。例如,在应用程序中监听 in-place update 事件,当收到更新请求时,如果处于 vscale 过程中,则可以将其视为成功。

    需要注意的是,在将 vscale 与 in-place update 结合时,你需要仔细考虑并测试这种行为对你的应用程序的影响。确保对两个功能的行为和顺序有充分的了解,并确保它们与你的应用程序的预期行为相一致。

    2023-08-04 20:43:55
    赞同 展开评论
  • 原地升级一些行为可能跟 vscale 不太匹配,比如升级之前会把 pod 置为 not ready,如果是 notRestart 策略下,仅仅 vscale,是不需要摘流的吧 ,此回答整理自钉群“OpenKruise 社区交流群”

    2023-08-01 20:01:27
    赞同 展开评论

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

还有其他疑问?
咨询AI助理