OpenKruise 出现这个现象,有没有问题呀?

OpenKruise金丝雀发布过程中,创建出了 canary service ,但没有 canary deploy ,新老实例均属于同一个 deploy ,类似多批次发布。这个有没有问题呀?

展开
收起
嘟嘟嘟嘟嘟嘟 2024-01-04 07:58:12 61 分享 版权
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在OpenKruise的金丝雀发布过程中,通常应该会创建一个对应的canary deploy来处理金丝雀版本的实例。然而,如果在实际操作中只创建了canary service而没有创建canary deploy,新老实例都归属于同一个deploy,类似进行了多批次发布,这种情况是可能存在的。

    此时,新版本和旧版本的所有实例都属于同一个Deployment,这可能会带来问题。因为在金丝雀发布中,我们通常会通过调整Deployment的pause字段或更新rollout.status.canaryStatus.currentStepState字段来控制各个批次的发布流程。如果这些步骤没有被正确执行,可能会导致发布过程无法正常进行。

    2024-01-05 17:07:28
    赞同 展开评论
  • 看诉求的。此回答整理自钉群“OpenKruise 社区交流群”

    2024-01-04 18:09:03
    赞同 展开评论
  • OpenKruise金丝雀发布过程中,创建出了canary service但没有canary deploy,新老实例均属于同一个deploy,类似多批次发布。这种情况是有问题的。

    在OpenKruise金丝雀发布中,canary service和canary deploy是两个核心概念。canary service用于定义金丝雀发布的流量规则,而canary deploy则用于管理新版本应用程序的部署。如果只创建了canary service而没有创建canary deploy,那么就无法实现新版本应用程序的自动升级和回滚。

    因此,在使用OpenKruise金丝雀发布时,需要同时创建canary service和canary deploy。具体步骤如下:

    1. 创建canary deploy,指定要部署的新版本应用程序。
    2. 创建canary service,指定要进行金丝雀发布的流量规则。
    3. 使用OpenKruise的Rollout功能,将新版本的应用程序部署到指定的canary deploy中。
    4. OpenKruise会自动将流量切换到新版本应用程序所在的canary service中,并将旧版本的应用程序下线。
    5. 如果新版本应用程序出现异常,OpenKruise会自动将流量切换回旧版本的应用程序所在的service中,并将新版本的应用程序下线。
    6. 如果新版本应用程序正常运行,可以继续将流量切换到新版本应用程序所在的canary service中,并逐步扩大新版本应用程序所占比例,直到全部切换完成。

    需要注意的是,在使用OpenKruise金丝雀发布时,需要保证canary deploy所管理的实例数量与要发布的新版本应用程序所占比例相同。例如,如果要发布的新版本应用程序占总实例数的10%,则需要在canary deploy中管理10个实例。

    2024-01-04 09:16:53
    赞同 展开评论