1.蓝绿发布的基本原理
蓝绿发布(Blue-Green-Deployment)是一种应用升级发布方式,这种方式可以瞬间切换到新版本,也可以瞬间回退到老版本。可以做到服务不中断的回滚,提升用户的使用体验。
- 下面以在kubernetes中升级为例来说明蓝绿发布的过程
为了在k8s中支持蓝绿发布,需要给应用pod添加新的标签也就是version,service中的Selector也要添加version
1.abc服务v1.0运行:version v1.0的abc服务正在接受用户的请求,也就是绿色的pod
2.abc服务v1.1发布:现在新发布了一个version v1.1的abc服务接受用户的请求。也就是蓝色的pod
3.abc服务v1.1接受用户请求:修改service中的version标签为v1.1,这样用户的请求就能转发到新的pod中,实现蓝绿发布。
4.abc服务v1.0下线: 如果用户请求没有问题就可以将version 为v1.0的abc服务删除
5.紧急回退:如果有问题也可以通过修改service中的version标签的值为v1.0进行快速回退(Rollback)
传统的配置中通过配置nginx的配置文件也可以实现蓝绿发布。不过过程比较繁琐也容易出错。也可以使用apisix,通过调用apisix进行动态切换服务ip,相比nginx少了reload和修改配置文件的操作
k8s中的Deployment也支持滚动更新的策略