写点什么

Kubernetes 1.2 新功能解析:使用 Deployment

  • 2020-03-13
  • 本文字数:1699 字

    阅读完需:约 6 分钟

Kubernetes 1.2新功能解析:使用Deployment

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。你现在可以访问:http://localhost:8001/static/ ,就是 demo 网页版(它现在登录进去显示出来的是一个空白页面)。现在我们想要运行一个应用,并且将它展示到网页上。



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



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

数量变大

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



更新你的应用程序

更新应用会怎么样呢?



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



你现在要做的是将这个应用的镜像从“update-demo:nautilus“更新到”update-demo:kitty“。


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

调试 rollout

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



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


回滚

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



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


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

更新你的应用程序(讲真)

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



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



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

结论

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


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


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


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


但是还有很多 Deployment 里的东西,在这里篇幅有限,无法详述。为了探究更多,点击这里了解更多:http://kubernetes.io/docs/user-guide/deployments/


注意:在 Kubernetes1.2 中,Deployment(测试版)功能完善,是默认启用的版本。你们之中试用过 Kubernetes1.1 中的 Deployment 的人,在 Kubernetes1.2 上尝试 Deployment 之前请删除所有的 Deployment1.1 资源(包括他们管理的 RC 和 pods)。这个步骤很有必要,因为我们对 API 作了一些反向不兼容的修改。


本文转载自才云 Caicloud 公众号。


原文链接:https://mp.weixin.qq.com/s/Ih_YKgvanMS1zcx9RWkIgQ


2020-03-13 17:26932

评论

发布
暂无评论
发现更多内容

物联网应用开发实践案例-智慧农业

DS小龙哥

3月月更

【愚公系列】2022年03月 Docker容器 Oracle的搭建

愚公搬代码

3月月更

【愚公系列】2022年03月 RabbitMQ 环境搭建和初步使用(window11+vs2022+.NET 6)

愚公搬代码

3月月更

解密GaussDB(for Influx)时序洞察

华为云开发者联盟

Influxdb 时序数据库 GaussDB(for Influx) 时序数据 时序洞察

18年程序员生涯,读了200多本编程书,挑出一些精华分享给大家

程序媛可鸥

Python 程序员 面试

Python 下载的9种方法,如何才能通过一线互联网公司面试

程序媛可鸥

Python 程序员 面试

OBV指标交易策略(累积能量潮与移动能量潮,成交量多空比率净额及相关应用原则)

程序媛可鸥

Python 程序员 面试

Python 中的八个“无代码”特性,这原因我服了

程序媛可鸥

Python 程序员 面试

华为自研编程语言“仓颉”试用报名开启

IT蜗壳-Tango

IT蜗壳 3月月更

一文带你搞懂java8新特性,熟记于心

刘祥

JAVA stream

Linux grep命令详解,手把手教你写

程序媛可鸥

Python 程序员 面试

百度一线工程师浅谈日新月异的云原生

百度Geek说

云原生 后端

Girlfriend含苞待笑——一次性处理上百份文档,BAT这种大厂履历意味着什么

程序媛可鸥

Python 程序员 面试

一文简述:云端常用存储类型

穿过生命散发芬芳

3月月更 云端存储

如何使用 HTML 和 CSS 写一个登录界面

宇宙之一粟

html/css 3月月更

【愚公系列】2022年03月 Docker容器 Mysql主从复制的搭建

愚公搬代码

3月月更

【技术加油站】揭秘百度智能测试规模化落地

百度Geek说

百度 测试 后端 智能化测试

NFS服务器原理、搭建、配置,Python面试题选择题

程序媛可鸥

Python 程序员 面试

python DataFrame数据分组统计groupby()函数,值得推荐

程序媛可鸥

Python 程序员 面试

微博评论的高性能高可用计算架构

tom

【愚公系列】2022年03月 RabbitMQ之Erlang-Window11下的安装

愚公搬代码

3月月更

【愚公系列】2022年03月 RabbitMQ EasyNetQ的用法(window11+vs2022+.NET 6)

愚公搬代码

3月月更

Newton迭代法开方(Python),最详细的docker中安装并配置redis

程序媛可鸥

Python 程序员 面试

架构训练营-模块五

Leo

架构训练营

百度交易中台之账房系统架构浅析

百度Geek说

百度 架构 后端 交易中台

15 本你必须阅读的 PyTorch 书籍,【2021Python最新学习路线

程序媛可鸥

Python 程序员 面试

Matlab初级学习者,15个经典面试问题及回答思路

程序媛可鸥

Python 程序员 面试

架构实战营:模块九作业

Geek_93ffb0

「架构实战营」

微博评论的高可用高性能计算架构

浪飞

这应该是目前市面上最好用的一款安卓兼容工具了!

优麒麟

Linux 开源 操作系统 优麒麟 KMRE

【愚公系列】2022年03月 Docker容器 RabbitMQ集群的搭建

愚公搬代码

3月月更

Kubernetes 1.2新功能解析:使用Deployment_语言 & 开发_才云科技_InfoQ精选文章