写点什么

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:261131

评论

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

即时融合提速,信心激活市场——2025年“双11”大促全周期观察

易观分析

善用NJet能力,优化你的数据库访问体验

通明湖

日志搜索与取证分析工具

运维有小邓

日志分析 日志监控 日志管理 日志审计

2025智能装备、车辆工程与自动化控制国际学术会议(ICEVA 2025)

搞科研的小刘

车辆检测

软件项目管理文档

金陵老街

项目管理 项目计划 软件管理

开发加油站丨应用隐私高频问题及自检指南 (第三期)

荣耀开发者服务平台

信息安全 荣耀开发者服务平台 荣耀应用市场 应用隐私合规

AI 健康管理系统:用智能守护让健康管理“看得见、管得住、防得早”

上海拔俗

绥化市等保测评适用企业范围与核心要求

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

企业级 VS 个人级:智能问数的“集团军”与“单兵作战”的差异解析

Aloudata

agent ChatBI 智能问数 智能归因 智能报告

在 RTE2025 大会,我看到了 AI 语音如何让机器学会「与人相处」丨社区来稿

RTE开发者社区

绥化市二级等保测评周期:国家规定与地方执行解析

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

阿里云可观测 2025 年 10 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测 产品动态

EMR Serverless Stella 1.0 技术分享:StarRocks企业级版本内核重大突破

阿里云大数据AI技术

阿里云 OLAP LakeHouse StarRocks Stella

教学资源库专业知识图谱:用智能关联让知识“连得上、找得准、学得透”

上海拔俗

百倍启动加速,大规模 Agent 部署和运维的捷径是什么?

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算FC

绥化市三级等保网络安全核心注意事项

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

为PDP-11/44安装84MB硬盘的复古计算实践

qife122

PDP-11 硬盘安装

【报名启动】ITCP联盟第五届技术大会—AI基建专场

Qunar技术沙龙

人工智能 AI 互联网 技术大会 提效

不只做语音,ElevenLabs 推出图像和视频生成平台;博通推出语音 AI 芯片,实现端侧 TTS 和实时翻译丨日报

RTE开发者社区

分享一名海外独立开发者的 AI 编程工作流

Baihai IDP

程序员 AI LLM AI编程 氛围编程

告别查询超时!SLS物化视图的核心原理与使用场景,开发者必看!

阿里巴巴云原生

阿里云 云原生 日志服务

广汽昊铂首获时速120公里L3高速测试牌照,高阶智驾迈入实用化新阶段

科技汇

石油天然气行业OT/ICS安全:守护全球经济命脉的关键防线

qife122

工业控制系统 关键基础设施

用最纯粹的白话,解析 AI Memory

老纪的技术唠嗑局

agent memory #OceanBase

(四)收官篇!从分层架构到数据湖仓架构系列:数据服务层和数据应用层及湖仓技术趋势小结

白鲸开源

大数据 开源 白鲸开源 数据湖仓

开发加油站丨游戏开发者能力速递

荣耀开发者服务平台

荣耀开发者服务平台 荣耀HONOR 荣耀游戏中心 游戏联运

财务机器人怎么选?2025年国内主流厂商全解析

Techinsight

多模一库——架构简化,能力翻倍

KaiwuDB

数据库 KaiwuDB 分布式多模数据库

腾讯云工具指南:25腾讯全球数字生态大会特辑

ToB行业头条

普通人如何免费使用Gemini3-Pro大模型?

王磊

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