OpenKruise金丝雀发布过程中,创建出了canary service但没有canary deploy,新老实例均属于同一个deploy,类似多批次发布。这种情况是有问题的。
在OpenKruise金丝雀发布中,canary service和canary deploy是两个核心概念。canary service用于定义金丝雀发布的流量规则,而canary deploy则用于管理新版本应用程序的部署。如果只创建了canary service而没有创建canary deploy,那么就无法实现新版本应用程序的自动升级和回滚。
因此,在使用OpenKruise金丝雀发布时,需要同时创建canary service和canary deploy。具体步骤如下:
- 创建canary deploy,指定要部署的新版本应用程序。
- 创建canary service,指定要进行金丝雀发布的流量规则。
- 使用OpenKruise的Rollout功能,将新版本的应用程序部署到指定的canary deploy中。
- OpenKruise会自动将流量切换到新版本应用程序所在的canary service中,并将旧版本的应用程序下线。
- 如果新版本应用程序出现异常,OpenKruise会自动将流量切换回旧版本的应用程序所在的service中,并将新版本的应用程序下线。
- 如果新版本应用程序正常运行,可以继续将流量切换到新版本应用程序所在的canary service中,并逐步扩大新版本应用程序所占比例,直到全部切换完成。
需要注意的是,在使用OpenKruise金丝雀发布时,需要保证canary deploy所管理的实例数量与要发布的新版本应用程序所占比例相同。例如,如果要发布的新版本应用程序占总实例数的10%,则需要在canary deploy中管理10个实例。