目录
前言
-w //可以看到实时状态变化
kubectl get pod -w
一、版本发布机制
蓝绿发布
-
成本高,整个服务器组整体替换部署
滚动发布
- 滚动发布(k8s默认的更新机制):先生成一个新的pod,然后删除一个旧的pod,往后以此类推。
- 每次只升级一个或多个服务,升级完成后加入生产环境,不断执行这个过程,直到集群中的全部旧版本升级新版本。
- 一直拿旧的变成新的,如果有问题就进行回滚
灰度发布(金丝雀发布)
- 找一部分旧的,更新成新的,拿这个新的给一小部分用户使用测试,如果用户使用没有问题,就把其他的POD 都更新成新的。
- 灰度发布只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本,如果用户对新版本没什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上面来。
- 和滚动发布的区别,就是会让用户测试这个部分新版本
二、金丝雀发布(Canary Release)
- Deployment 控制器 支持自定义控制更新过程中的滚动节奏,如 " 暂停(pause) " 或 " 继续(resume) " 更新操作。
- 比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。