OpenKruise金丝雀发布过程中,创建出了 canary service ,但没有 canary deploy ,新老实例均属于同一个 deploy ,类似多批次发布。这个有没有问题呀?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在OpenKruise的金丝雀发布过程中,通常应该会创建一个对应的canary deploy来处理金丝雀版本的实例。然而,如果在实际操作中只创建了canary service而没有创建canary deploy,新老实例都归属于同一个deploy,类似进行了多批次发布,这种情况是可能存在的。
此时,新版本和旧版本的所有实例都属于同一个Deployment,这可能会带来问题。因为在金丝雀发布中,我们通常会通过调整Deployment的pause字段或更新rollout.status.canaryStatus.currentStepState字段来控制各个批次的发布流程。如果这些步骤没有被正确执行,可能会导致发布过程无法正常进行。
OpenKruise金丝雀发布过程中,创建出了canary service但没有canary deploy,新老实例均属于同一个deploy,类似多批次发布。这种情况是有问题的。
在OpenKruise金丝雀发布中,canary service和canary deploy是两个核心概念。canary service用于定义金丝雀发布的流量规则,而canary deploy则用于管理新版本应用程序的部署。如果只创建了canary service而没有创建canary deploy,那么就无法实现新版本应用程序的自动升级和回滚。
因此,在使用OpenKruise金丝雀发布时,需要同时创建canary service和canary deploy。具体步骤如下:
需要注意的是,在使用OpenKruise金丝雀发布时,需要保证canary deploy所管理的实例数量与要发布的新版本应用程序所占比例相同。例如,如果要发布的新版本应用程序占总实例数的10%,则需要在canary deploy中管理10个实例。