image.pngdeployment在k8s中完整的实现:水平扩展/收缩
例子:更新一个deployment的pod模板(修改了容器的镜像),那么deployment就需要遵循”滚动更新“的方式,来实现升级容器。这个时候就需要ReplicaSet。
水平扩展实现:通过Deployment Controller只需要修改她控制的ReplicaSet的pod副本数即可。
image.png
我们如何检查nginx-deployments创建后的状态信息:
image.png
1.DESIRED:客户期望的pod副本数
2.CURRENT:当前处于running的pod
3.UP-TO-DATE:处于最新版本的pod
4.AVAILABLE:当前已经可用的pod
如何实时查看Deployment对象的状态变化:
[root@k8s-master-lzy /]# kubectl rollout status deployment/nginx-deployment
deployment "nginx-deployment" successfully rolled out
[root@k8s-master-lzy /]#
滚动更新中:
image.png
如果之前在水平扩张的时候报错。目前已经有一个前pod删除并且异常,如何恢复之前pod。
kubectl rollout undo deployment/nginx-deployment,可以回滚到上个版本
image.png
总结:Deployment是个两层的控制器。用re的个数描述应用的版本,用RE的属性来保证pod的副本数量。
在滚动更新中,哪个pod先下线无法随便选择,自定义的控制器可以。
网友评论