使用kubectl实现应用滚动更新

更新应用

用户需求:需要应用始终正常运行,开发人员每天需要部署新的版本(一个简单例子,大家在玩游戏时常常碰到这类公告:8月8日凌晨:2点-6点服务升级,暂停所有服务.....)。在Kubernetes中可以通过滚动更新Rolling updates )来完成。滚动更新通过Deployments实现应用实例在不中断、不停机情况下更新,新的Pod会逐步调度到可用的资源Node节点上。

前面的模块中,我们对应用进行了伸缩,以运行多个实例。这是在不影响应用可用性的情况下执行更新的需求。更新时的Pod数量可以是数字或百分数(pod)来表示。在Kubernetes更新中,支持升级 / 回滚(恢复)更新。

滚动更新概述

(1)

(2)

(3)

(4)

与应用伸缩相似,滚动更新是实现流量负载均衡方式。

滚动更新允许以下操作:

  • 将应用从一个环境升级到另一个环境(通过容器镜像更新)
  • 回滚到之前的版本
  • 持续集成和持续交付应用的零停机

在下面的交互式教程中,我们的应用将更新到一个新的版本,并执行回滚。