成都创新互联网站制作重庆分公司

kubernetes实践之四十:Pod的升级与回滚

一:Deployment的升级
举例:

点击(此处)折叠或打开

网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;网站设计制作、成都网站建设收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了十载的创新互联网站建设公司。

  1. apiVersion: apps/v1beta1
  2. kind: Deployment
  3. metadata:
  4.   name: nginx-deployment
  5. spec:
  6.   replicas: 3
  7.   template:
  8.     metadata:
  9.       labels:
  10.         app: nginx
  11.     spec:
  12.       containers:
  13.       - name: nginx
  14.         images: nginx:1.7.9
  15.         ports:
  16.         - containerPort: 80
1.通过kubectl set image命令为Deployment设置新的镜像名称
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1

2.使用kubectl edit命令修改Deployment的配置 将spec.template.spec.containers[0].images 从nginx:1.7.9 更改为1.9.1; 保存退出后,kubernetes会自动升级镜像。

3.通过kubectl rollout status 可以查看deployment的更新过程

在Deployment的定义中,可以通过spec.strategy指定Pod更新的策略:

1.Recreate(重建): 设置spec.strategy.type=Recreate,表示Deployment在更新Pod时,会先杀掉所有正在运行的Pod,然后创建新的Pod.

2.RollingUpdate(滚动更新):以滚动更新的方式来逐个更新Pod,可以通过设置spec.strategy.rollingUpdate下的两个参数(maxUnavailable和maxSurge)来控制滚动更新的过程。

通常来说,不鼓励更新Deployment的标签选择器,因为这样会导致Deployment选择的Pod列表发生变化,也可能与其它控制器产生冲突。

:Deployment的回滚

所有Deployment的发布历史记录都保留在系统中,如果要进行回滚:

1. 用kubectl rollout history命令检查这个Deployment部署的历史记录

2.用kubectl rollout undo deployment/nginx-deployment 撤销本次发布回滚到上一个部署版本

3.用kubectl rollout undo deployment/nginx-deployment --to-revision=2 回滚到指定版本

三:暂停和恢复Deployment的部署操作,以完成复杂的修改

对应一次复杂的Deployment配置修改,为了避免频繁触发Deployment的更新操作,可以暂停Deployment的更新操作,然后进行配置修改,再回复Deployment.一次性触发完整的更新操作。

使用命令:kubectl rollout pause deployment/nginx-deployment

四:使用kubectl rolling-update命令完成RC的滚动升级

对应RC的滚动升级,Kubernetes还提供了一个kubectl rolling-update 命令进行实现。该命令创建一个新的RC,然后自动控制旧的RC中的副本数量逐渐减少到0,同时新的RC中的Pod副本的数量从0逐步增加到目标值,来完成Pod的升级。 需要注意的是新旧RC要再同一个命名空间内。

五:其它管理对象的更新策略
1.DaemonSet的更新策略
a.OnDelete:  默认配置。只有旧的Pod被用户手动删除后,才触发新建操作。
b.RollingUpdate: 就版本的Pod将被自动杀掉,然后自动创建新版本的DaemonSet Pod.

2.StatefulSet的更新策略
StatefulSet的更新策略正逐渐向Deployment和DaemonSet的更新策略看齐。

分享题目:kubernetes实践之四十:Pod的升级与回滚
地址分享:http://cxhlcq.com/article/phoeih.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部