9. K8S之deployment
首先要来复习一下RC,RS这俩角色:
RC(Replication Controller):
K8s集群中最早的保证Pod高可用的API对象。用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器退出,会自动创建新的pod 来代替;而如果异常多出来的容器,也会自动回收。
RS(ReplicaSet):
是新一代RC,提供同样的高可用能力,区别主要在于RS后来居上,能支持更多种类的匹配模式。(比如,根据pod的tags来批量管理)
也就是说,他俩管理Pod是这么来的:

RS和RC目前的区别只是支持的selector不同,后续肯定会加入更多功能。
deployment
滚动升级和回滚
应用扩容和缩容
暂停和继续
这三点是RC和RS没有的。
1. 部署流程
其实deployment就是通过创建RS来管理Pod的,如图:

- 用户通过
kubectl创建Deployment。 Deployment创建ReplicaSet。ReplicaSet创建Pod。RS对象的命名方式是:子对象的名字 = 父对象名字 + 随机字符串或数字
2. 滚动更新和回滚
如图,版本1的Pod,向版本2的Pod更新:
流程如下:
deployment创建一个新的RS:RS2- 由
RS2开始创建Pod2,在旧版的K8S中,默认每次更新出1个Pod,删除1个旧的Pod;在新版的K8S中,默认每次创建出25%的Pod,再删除25%旧的就Pod。




