1.滚动更新策略
滚动升级策略会允许集群存在新旧版本,可能会对应用存在服务访问问题;
注意点:
Deployment控制器的滚动更新操作并非在同一个ReplicaSet控制器对象下删除并创建Pod资源,而是将它们分置于两个不同的控制器之下:旧控制器的Pod对象数量不断减少的同时,新控制器的Pod对象数量不断增加,直到旧控制器不再拥有Pod对象,而新控制器的副本数量变得完全符合期望值为止;
maxUnavailable:表示最大不可用pod数量,可以是整数或者百分比;
maxSurge:表示可超过预期值的pod数量,可以是整数或者百分比;
为了保存版本升级的历史,需要在创建Deployment对象时于命令中使⽤“--record”选项。"kubectl apply -f myapp-deploy.yaml --record";
适用情况:一些无状态应用,允许多个版本存在访问,需要快速回滚;
2.重建策略
重建策略会在创建新策略之前删除所有现有容器集,Kubernetes 先终止当前版本中的所有容器,然后在旧容器删除时同时启动所有新容器,不会有 2 种版本容器同时运行,这对服务使用者来说更简单
一般建议在开发环境使用该策略;
3.蓝绿发布(通过修改label,或者是结合istio)
4.金丝雀发布9(通过修改label,或者是结合istio)