Deployment Controller详解(下)

上一篇在《Deployment Controller详解(上)》中介绍了Deployment Controller 的创建、更新和回滚。了解了这三个功能,基本上也就懂得了大厂PaaS平台中服务的灰度升级、失败回滚等操作是如何实现的了。

接下来本文会介绍Deployment Controller的暂停和恢复部署。

4. 暂停和恢复滚动更新部署

设想,现在有这么一个场景:在新版本上线之前可能会对线上服务有多次的修改,例如修改服务版本、容器占用的cpu以及内存等等。在完全修改之前并不想影响线上服务的运行。

此时便可以利用Deployment暂停滚动更新,等完全修改完成后,再开始更新。

查看当前服务

接上一篇,已经部署好了nginx-deployment,

获取部署详细信息以及获取发布状态:

kubectl get deploy
-----
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment      4/4     4            4           14h
-----
kubectl get rs
-----
NAME                            DESIRED   CURRENT   READY   AGE
nginx-deployment-848dd6cfb5     4         4         4       15h

暂停

kubectl rollout pause deployment/nginx-deployment

可以看到以下输出:

deployment.apps/nginx-deployment paused

更新

  • 更新 Deployment 的镜像
kubectl set image deployment/nginx-deployment nginx=nginx:1.14.2

上一篇中将镜像更新成了1.16.1,此次再更新回1.14.2

  • 查看是否开始滚动更新

kubectl rollout history deployment/nginx-deployment

  • 获取 rollout 状态以验证现有 ReplicaSet 是否未更改:
    kubectl get rs

    可以看到前后rs版本并没有任何变化,也就意味着并没有开始更新。

继续更新

kubectl set resources deployment/nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi

只要暂停部署,对部署的任何更新都不会影响之前的功能。

恢复部署

最后,恢复部署部署并观察新的 ReplicaSet 是否出现了所有新更新:

kubectl rollout resume deployment/nginx-deployment

执行kubectl get rs -w观察部署的状态直至完成。


可以看到已经将之前的版本更新成最新版本了。

注意:在恢复暂停的部署之前,无法进行回滚。

Tips:关于Deployment Controller ,本文仅介绍了其使用方法,能够让新手快速使用起来,更多的细节可以阅读官方文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294693.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Error in `arrange()`: ! Can‘t transform a data frame with `NA` or `““` names.

问题:给Taxonomy排序,并筛选OTU表中存在的 根据提示运行:rlang::last_error(),显示: Backtrace:▆1. ├─dplyr::arrange(taxonomy, phylum, class, order, family, full)2. ├─dplyr:::arrange.data.frame(taxonom…

Linux 磁盘空间占满故障解决方法

故障排查: 使用命令查看磁盘使用量 # 使用人类可读的格式(预设值是不加这个选项的...) df -h # --inodes 列出 inode 资讯,不列出已使用 block df -i # 查看当前目录下各个文件及目录占用空间大小 du -sh / 情况一:一般磁盘空间满了&a…

《微信小程序开发从入门到实战》学习六十

6.2 账号信息API 6.2.3 小程序账号信息API 使用wx.getAccountInfoSync接口可以获取小程序账号信息,该接口自基础库2.2.2版本开始支持。代码如下: const accountInfo wx.getAccountInfoSync() console.log(accountInfo.miniProgram.appId) // 小程序…

部署tomcat单机多实例,keepalived+mysql的互为主从高可用,mysql+keepalived高可用

部署tomcat单机多实例 在Tomcat中部署单机多实例是一种常见的做法,它允许您在同一台服务器上运行多个独立的Tomcat实例,每个实例都有自己的配置、日志和应用程序。 安装jdk环境 首先配置java环境 [roottomcat ~]# tar xf jdk-8u211-linux-x64.tar.gz…

将PPT的图保持高分辨率导入到Word / WPS中

1、将PPT中画好的图组合在一起,选择组合后的图复制(Ctrlc) 2、在Word中,选中左上角的粘贴选项--->选择性粘贴 WPS选择元文件 / Word选择增强型图元文件 这样放大也不模糊了

碳排放预测 | 基于ARIMA和GM(1,1)的碳排放预测(Matlab)

目录 预测效果基本介绍模型描述ARIMA模型GM(1,1)模型 程序设计参考资料 预测效果 基本介绍 基于ARIMA和GM(1,1)的碳排放预测(Matlab) 基于ARIMA(自回归移动平均模型)和GM(1,1)(灰色预测模型)的碳排放预测是…

一文搞懂 java8 reduce操作

什么是 reduce Java8 中有两大最为重要的改变,其一是 Lambda 表达式,另一个就是 Stream API 了。 Stream 是 Java8 中处理集合的关键抽象概念,它将数据源流化后,可以执行非常复杂的查找、过滤和映射数据、排序、切片、聚合统计等…

Vue项目如何打包

1. 确保你已经在项目根目录下安装了Vue CLI。如果没有安装,可以通过以下命令进行安装: npm install -g vue/cli 2. 在项目根目录下打开终端或命令行工具,运行以下命令来创建一个生产环境的打包文件: npm run build 这个命令会执…

pip 常用指令 pip list 命令用法介绍

📑pip 常用命令归类整理 pip list 是一个用于列出已安装的 Python 包的命令。这个命令会显示出所有已安装的包,以及它们的版本号。 pip list 命令有以下参数 -o, --outdated:列出所有过时的包,即有新版本可用的包。-u, --uptod…

K8s出现问题时,如何排查解决!

K8s问题的排查 1. POD启动异常、部分节点无法启动pod2. 审视集群状态3. 追踪事件日志4. 聚焦Pod状态5. 检查网络连通性6. 审视存储配置7. 研究容器日志8. K8S集群网络通信9. 问题:Service 是否通过 DNS 工作?10. 总结1、POD启动异常、部分节点无法启动p…

react 2

1.快速搭建开发环境 2.react渲染流程 3.1 jsx基础 概念 3.2 jsx基础 本质 3.3 jsx基础 jsx表达式 3.4 jsx基础 实现列表渲染 3.5 jsx基础 实现条件渲染 3.5 jsx基础 实现复杂的条件渲染 4. react中事件绑定 5.react组建基础使用 6.1 useState 6.2 useState修改状态的规则 7.基础…

力扣日记12.23-【二叉树篇】501. 二叉搜索树中的众数

力扣日记:【二叉树篇】501. 二叉搜索树中的众数 日期:2023.12.23 参考:代码随想录、力扣 501. 二叉搜索树中的众数 题目描述 难度:简单 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出…