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

OpenKruise中为什么触发滚动更新后没有并没有执行rollout的分批暂停?

b610eaa125f55a1c7629f82fbb5ffe39.png
我在测试rollout的功能,求问一下,我在给我的umelog-collector deployment创建了rollout对象后,触发滚动更新后没有并没有执行rollout的分批暂停,日志说没有被控制,可能的原因是什么?

展开
收起
林间雨 2023-11-14 18:13:40 54 0
1 条回答
写回答
取消 提交回答
  • 在OpenKruise中,滚动更新(RollingUpdate)是默认启用的。当您对Deployment进行更新时,OpenKruise会自动进行滚动更新,以最小化应用更新的影响。

    然而,滚动更新并不会影响到Rollout的分批暂停策略。这是因为滚动更新和分批暂停是两个不同的概念,它们分别作用于不同的层次。滚动更新是在Deployment级别进行的,它负责在不影响服务的前提下更新Deployment。而分批暂停则是在Rollout级别进行的,它负责在更新过程中管理Canary流量。

    如果您希望在滚动更新时也应用分批暂停策略,您可以在Rollout的定义中设置strategy.canary.interval字段,以指定分批暂停的时间间隔。例如:

    apiVersion: kruise.io/v1alpha1
    kind: Rollout
    metadata:
      name: report-api
    spec:
      strategy:
        canary:
          interval: 30s
          # ... other canary settings ...
    

    在这个例子中,interval: 30s表示在每个Canary批次完成后,都会暂停30秒,然后再进行下一个Canary批次。这样,即使在滚动更新中,也可以保证每个Canary批次都有足够的时间进行验证。

    2023-11-30 12:01:01
    赞同 展开评论 打赏
问答分类:

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

相关电子书

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