本帖最后由 不懂就问 于 2020-8-31 21:26 编辑
一、前言
在上个分享中我们介绍了kubernetes管理对象之一Pod,以及不同的控制器,重点介绍了Deployment的概念、如何通过yaml文件创建Deployment。本次和大家分享如何进行Deployment的扩容与升级。
二、Deployment弹性伸缩 相较于虚拟机,使用容器的优势之一就在于可以灵活的弹性伸缩,可以快速实现副本数的调整,实现扩容或缩容。 Deployment弹性伸缩的本质是Pod数量的增加与减少,弹性伸缩可以支持自动化部署,并在短时间内实现变更。我们可以通过修改yaml文件中的replica参数实现,修改完毕后可以通过scale命令进行扩容或者缩容。 示例: 现在有一个Deployment,pod为三个副本,我们通过编辑yaml文件将replicas从3修改为5,进行弹性伸缩。
我们可以清晰地看到,pod副本数由3个扩容至5个。
三、Deployment的升级与回滚 当使用的软件版本需要升级时,可以使用rolling update功能滚动升级Deployment中的所有Pod。 示例: 1.在上个分享中,我们通过yaml文件创建了一个Deployment,我们通过命令查看该Deployment当前的状态以及对应Pod。 我们编辑对应的yaml文件,将images对应的镜像版本修改为新版本。 升级后,再次查看状态,会发现rs和pod都发生了变化,出现了新的rs,原始rs中没有pod了,并且三个pod中的发生了变化。 通过查看Deployment的详细信息,我们可以看到Deployment控制器依次在新的replicaset中创建pod,并依次将原有replicaset中的pod数量减少,最终用新的replicaset代替原有,实现了所有pod的滚动更新。 |