编者注:这是Kubernetes1.2新功能深度介绍系列的第7篇帖子。

Kubernetes令部署应用、管理应用变得简单直白,令大多数操作简化为单个API或单个命令行,包括发布新的应用程序,canary测试和升级。那么为什么我们还需要部署呢?

自动化Deployment和滚动更新程序。相比于kubectl滚动更新,Deployment API更加快速,具有描述性,实现服务端,还有更多的功能(比如,即使是在滚动更新完成之后,你也可以回滚到之前的版本,)。

在今天的博客中,我们介绍的内容包括如何使用Deployment来:

  1. 配置/推出一个新的应用程序

  2. 阶段性更新应用程序,中途没有服务中断

  3. 如果在你部署/更新应用的时候出现错误,你可以回滚到之前的版本。

让我们来尝试使用一下Deployment吧~

准备开始

如果你想要试用下面这个例子,基本上需要满足以下三个要求:

  1. 一个正在运行的kubernetes集群:如果你现在还没有创建过集群的话,查看教程:点我,里面有各种平台上的部署方案,包括你的笔记本,虚拟机,裸机服务器等等。

  2. Kubectl,Kubernetes CLI:如果在运行kubectl cluster-info之后,看到了一个URL回应,那么就准备启动吧。否则的话,就按照指示安装配置kubectl;如果你有谷歌 GCE集群的话,也可以按照主机解决方案(点我)的指示来安装。

  3. 这个demo的配置文件,可以点击:点我

如果不想自己动手运行这个例子,那也可以。看这个视频了解每一步的细节。

点击这里看视频,记得翻墙哦

开始

配置文件包括一个静态页面。首先,我们想要开始为它的静态内容服务。从Kubernetes repository的root开始,运行:

这个在8001端口运行了一个proxy。你现在可以访问:点我 ,就是demo网页版(它现在登录进去显示出来的是一个空白页面)。现在我们想要运行一个应用,并且将它展示到网页上。

这些代码用“update-demo:nautilus”部署了一个应用的副本,你可以点击这里观看:点我

网页上展示的卡片代表的是:一个Kubernetes pod,pod的名称(ID),状态,镜像和标签。

数量变大

现在我们想要更多这个应用的复制件!

更新你的应用程序

更新应用会怎么样呢?

此代码打开了你的默认编辑器,然后你可以在fly上面更新配置。找到.spec.template.spec.containers[0].image,然后修改nautilus到kitty,然后你会看到:

此代码打开了你的默认编辑器,然后你可以在fly上面更新配置。找到.spec.template.spec.containers[0].image,然后修改nautilus到kitty,然后你会看到:

过一会儿,你就会发现更新似乎被绊住了。发生了什么呢?

调试rollout

如果你看的再仔细一点,你会发现那些带有“Kitty”标记的镜像仍处于待定状态。一旦运行失败,Deployment会自动停止roll。让我们来看一看新的pod上发生了什么:

看一下这个pod的events,你会注意到Kubernetes由于找不到“kitty”而无法pull镜像:

回滚

好的,现在我们想要撤销做出的修改,然后花时间理清楚我们应该使用哪个镜像标签。

所有东西都恢复到正常,耶!

为了学习更多的关于回滚的知识,访问:点我。

更新你的应用程序

之后,我们终于找出正确的镜像标签是“kitten”,而不是“Kitty”。现在将.spec.template.spec.containers[0].的镜像标签从“nautilus”改到“kitten”。

现在在demo网站上可以看到有4只小猫,这也就意味着我们已经成功地更新了应用!如果想要了解这背后的镜像,来看这个的Deployment吧:

从events章节可以看到配置正在管理另一个叫做Replica Set的资源,每一个都管理不同pod模版的副本的数字。

结论

现在,你已经了解了Deployment对象的基本用法:

  1. 部署有Deployment的应用,使用kubectl来运行

  2. 通过更新Deployment来更新应用,用kubectl编辑

  3. 回滚到之前部署的应用,用Kubectl rollout撤销

但是还有很多Deployment里的东西,在这里篇幅有限,无法详述。为了探究更多,点击这里了解更多:点我
注意:在Kubernetes1.2中,Deployment(测试版)功能完善,是默认启用的版本。你们之中试用过Kubernetes1.1中的Deployment的人,在Kubernetes1.2上尝试Deployment之前请删除所有的Deployment1.1资源(包括他们管理的RC和pods)。这个步骤很有必要,因为我们对API作了一些反向不兼容的修改。

获取更多信息,请点击:点我

原文链接

(如果需要转载,请联系我们哦,尊重知识产权人人有责)

Kubernetes 1.2新功能解析:使用Deployment相关推荐

  1. HTML5新的解析顺序,HTML5新表单新功能解析

    HTML5新增了很多属性功能.但是有兼容性问题,因为这些表单功能新增的.我这里做了一个简单的练习,方便参考.如果完全兼容的话,那我们写表单的时候就省了很多代码以及各种判断. HTML5表单新功能解析 ...

  2. Unity5 新功能解析--物理渲染与standard shader

    Unity5 新功能解析--物理渲染与standard shader http://blog.csdn.net/leonwei/article/details/48395061 物理渲染是UNITY5 ...

  3. 微信小程序0.11.122100版本新功能解析

    微信小程序0.11.122100版本新功能解析 我的知乎专栏-小楼昨夜又秋风 https://zhuanlan.zhihu.com/oldtimes 新版本就不再吐槽了,整的自己跟个愤青似的.人老了, ...

  4. AI云边端EasyCVR平台新功能解析:支持为角色选择多级分组

    EasyCVR平台可支持多类型设备.多协议方式接入,具体包括:国标GB28181协议.RTMP.RTSP/Onvif.海康Ehome,以及海康SDK.大华SDK.华为SDK.宇视SDK.乐橙SDK.萤 ...

  5. CAD软件2023最新版本-新功能解析

    数百万用户信赖的二维&三维绘图软件AutoCAD,它的版本更新是很快的,基本上一年一个版本.每次更新,CAD软件性能都会变得更好用.更稳定.更快捷.今天我们来了解一下,最新版本的AutoCAD ...

  6. html5表单新功能解析,解析HTML5表单新功能-HTML5

    本文我们将详细介绍一下HTML 5中对表单功能的更新.希望能帮助更多的前端人学习这门毋庸置疑是新趋势的技术. 一.表单结构更自由 XHTML中需要放在form之中的诸如inpu/button/sele ...

  7. Microsoft Deployment Toolkit 2010 新功能实战之一

    续Microsoft Deployment Toolkit 2010 Beta 2先睹为快! 下面将通过使用Microsoft Deployment Toolkit 2010来部署Windows 7来 ...

  8. 【完全解析】Lumion 9.0 新功能与改进

    作者:活力网Andrew Hi,大家好,我是Andrew Lumion9.0正式出来得瑟啦! 去年的lu8已经让大家很震撼啦 当大家都觉得撸妹儿已经到达一定高度的时候 今天的lu9再次惊艳! 今天我们 ...

  9. android 打开微信好友动态,朋友圈可以查看“访客记录”?微信8.0.1不简单,新功能大解析...

    前段时间,iOS系统提前更新了8.0版本,这让安卓用户非常不满.满世界的苹果用户都在体验微信的新功能,只有安卓用户一脸懵,好在安卓系统的用户终于等到了.微信每一次的更新都是影响重大的,因为在微信的背后 ...

最新文章

  1. CentOS 6 时间,时区,设置修改及时间同步
  2. dede 怎样调用其它栏目的文章或者缩略图列表且有分页效果?
  3. Xposed是如何为所欲为的?
  4. IoTSharp部署教程-Sqlite分表篇
  5. 矩池云上如何修改cudnn版本
  6. mac git配置 idea
  7. VB.Net数据库编程
  8. 全年日降雨数据下载与处理教程
  9. 机器学习算法工程师面试考点汇总
  10. 太宰治《人间失格》经典语录20句,句句引人深思
  11. 台式计算机显示不了无线网络,我是台式电脑,插上无线网卡怎么我的链接里不显示无线...
  12. 【树莓派】挂载移动硬盘 使用transmission 刷pt站
  13. LED背光源优势的表现
  14. android实现菜单侧滑栏,Android侧滑-RecyclerView轻松实现高效的侧滑菜单
  15. 深度学习平台demo(一)- C#如何调用python文件
  16. 算法设计例题分析 食物链
  17. nacl溶解度_科普下氯化钠溶解度
  18. Sping +hibernate+JTA 注解配置
  19. linux虚拟IP/yum Invalid version flag: if 错误//configure:错误:HTTP重写模块需要PCRE库。
  20. U盘文件后缀变成.exe怎么办?

热门文章

  1. Android里的shell的系统命令
  2. 使用ArcGIS Engine连接ArcIMS feature Service 获得FeatureCLass
  3. 基于UDP协议的套接字+socketserver模块
  4. 【转载】oracle闪回技术详解之闪回drop(神奇的flashback)
  5. socket.io 中文手册 socket.io 中文文档
  6. PHP数组——自定义排序
  7. Mysql Group by 分组取最小的实现方法
  8. 阿里巴巴常考面试题及汇总答案
  9. reporting services订阅
  10. java i o中文版_Java文件I/O的三种方法