目标

  • 使用 kubectl 执行滚动更新

更新应用程序

用户期望应用程序始终可用,并且希望开发人员每天部署新版本。在 Kubernetes 上这通过滚动更新(Rolling updates)达成。 Rolling updates 允许通过使用新的 Pods 实例逐个更新来实现零停机的部署更新。新的 Pods 会被调度到可用资源的 Node 节点上。

在上一个模块中,我们将应用程序扩展为运行多个实例。这也是执行更新但不影响应用可用性所需的条件。默认情况下,更新期间最大数量的不可用 Pod 以及最大数量的新 Pod 是一。 这两个选项可以配置为数字或百分比(Pods)。 在 Kubernetes 中,更新已版本化,任何部署更新都可以恢复到以前的 (稳定) 版本。

摘要:

  • 更新应用程序

滚动更新允许通过使用新的 Pods 实例逐个更新来实现零停机的部署更新。


滚动更新概述


与应用程序伸缩类似,如果 Deployment 外部可见,则服务将在更新期间将流量负载均衡到可用的 Pod。可用的 Pod 指的是应用程序用户可用的实例。

滚动更新允许以下操作:

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

如果部署外部可见,则服务将在更新期间将流量负载均衡到可用的 Pod。


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