写点什么

通俗易懂图解 Kubernetes

  • 2018-08-21
  • 本文字数:2743 字

    阅读完需:约 9 分钟

本文最初发表于 Daniel Lebrero 的个人站点,经原作者授权由 InfoQ 中文站翻译并分享。

Kubernetes(后文简称为 k8s)有自己的一套抽象机制和术语,但是借助一些想象力,可以将这些抽象与我们更加熟悉的概念联系起来。

我本来希望将其类比为香肠工厂,但令人遗憾的是,k8s 要比香肠更复杂,所以我只好将其类比为主题公园。

如下的内容都是基于谷歌 Kubernetes 引擎的,在其他的供应商中或者如果你自行运行 k8s 的话,有些概念可能会略有差异。

你是谁?

我们假设你是 Kubenelius Fizzbuzz,一位刚刚毕业的 MBA,擅长打包各种东西,你信心满满地要实现自己的想法:KubePark 主题公园。

计划有趣的游乐设施

为了启动 KubePark 这个工程,你需要为其规划有趣的游乐设施。于是,你决定每个吸引游客的景点都只需要填写一个如下图所示的模板(k8s deployment )即可。

这张图片表明 KubePark 有三个 1909 旋转木马。

1909 旋转木马是由两部分组成的:一个经典的旋转木马再加上一个棉花糖摊位。每个组成部分(k8s container )将会通过一个大箱子由无人机实现交付,一旦开箱就能立即组装好并运行起来。

每个景点都会使用栅栏包围起来,将其与其他景点隔离,这样某个景点的问题就不会传播到其他景点之中。但是景点各个组成部分则是不可分割的整体(k8s pod ),所以不会有障碍物或防火墙阻碍组件之间的交流和移动,避免破坏游客的体验(在 k8s 中,如果你想要共享文件的话,还是需要一点配置的)。

具有栅栏就意味着我们需要为游客规划入口(k8s containerPort )。在 1909 旋转木马中,将会首先经过一个棉花糖的摊位:在体验旋转木马的时候,如果还有一个蓬松的棉花糖,那将会带来更有趣的体验。

模板还会指定大小(k8s 内存)和电力(k8sCPU)的需求(k8s resources ),并将 1909 旋转木马标记(k8s labels )为旋转木马(carousel)、适宜儿童(kid friendly)和经典(classic)的景点。稍后我们将会看到如何使用这些信息。

在模板背后,有些东西我们在图片上没有标注出来,你还需要为每个组成部分编写维护指令(k8s probes )。你的员工会定期按照这些指令判断是否有某些组成部分需要替换。如果需要替换的话,维护人员会将有问题的组成部分直接化为灰烬,无人机将会运来另外一个新的大箱子作为替换。所以,不要花费力气试图修复它们,我们只需要替换整个棉花糖摊点或旋转木马就可以。在替换期间,景点会对游客关闭,即便景点中某些组成部分对用户可用也会如此:1909 旋转木马的体验包括必备的棉花糖和旋转木马,二者是不可分割的。

寻找地块将计划落地

有趣的游乐设施规划完成之后,接下来就该开工建设这个公园了。

你需要与土地的拥有者签订一个租赁合同(k8s node pool ):

这个包含了两个地块(k8s nodes ),每个地块有其大小(k8s memory)和发电机(k8s CPU)。需要注意该协议并不是针对两个特定的地块的,而是多个具备该特征的地块,土地拥有者要负责寻找这些地块。借助现代的运输机制,这些地块并不一定要相邻。

土地拥有者还需要保护对地块的访问,这是通过在每个地块周围安装带刺的铁丝网来实现的。

你还可以勾选“free disaster insurance”(k8s auto repair ))复选框:如果某个地块不可用的话,土地拥有者会将其替换为具有完全相同特质的另外一个地块。土地拥有者要负责查找并确定地块是否可用,并进行替换。

最后,协议提供的地块是带有标签的(同样是 k8s label ),这里的标签是“plains”和“Mediterranean weather”,即平整的地区并且是地中海气候。稍后我们将会看到如何使用该信息。

建造 KubePark

你的工作已经非常辛苦了,所以你会将公园建造的具体工作委托给一位控制人员。该员工会确保你在计划中规划的景点数量和类型始终都能无误地运转。

出乎意料的是,慷慨的土地拥有者还为你提供了控制交通管制塔(k8s cluster master ),以便于让控制人员容身并且还会负责控制塔所需的维护和改善工作。这样我们要关心的事情就又少了一件!

现在有了控制塔,再加上建造游乐设施的计划,你的员工就可以决定在哪个地块上构建每个景点了,需要确保地块上有足够的空间和电力满足景点的运转所需(k8s resource quality of service )。

每个景点始终都能得到所需的最少电力(k8s CPU),并且拥有的电力量不会超过规定的最大值(否则的话,将会造成短路并烧坏线路),如果地块上还有空闲电力的话,它能够得到额外的电力(超过最小值,但是不会大于最大值)。如果没有空闲的话,该景点的运行会变得更加缓慢。

康茄舞会(Conga Dancing Party Line)有一个最小和最大的规模(k8s memory)。它始终能保证达到指定的最小值,但是如果大于最大值的话,它就会关闭。我们大家都知道,太长的康茄舞通常都会以骚乱收场。如果地块有空闲的话,它会得到额外的空间(超过最小值),但是如果没有空间的话,超过最小空间的某个景点将会关闭。交通管制塔会决定要将哪个景点关闭,它可能是康茄舞会景点,也有可能是其他的。

现在有了足够的空间和电力,团队在创建你规划的景点方面已经没有任何问题了。主题公园已经准备就绪了。

KubePark 开业

为了帮助游客到达每个景点,你发现最简单的方式就是使用带不同颜色的路标(k8s nodePort 服务),如下所示:

图片来源:来自 Cmglee 伦敦维多利亚车站地面线

在这里,我们想要使用蓝色标线将游客导引至带有“classic”标签的景点,绿色标线将用户导引至带有“roller coaster”标签的景点。按照你的需要,可以进行具体化或泛化,如果必要的话,还可以将多个标签组合起来。

路标不仅仅是给游客用的,你的内部员工也可以使用它,你还可以创建仅仅对内部员工可见的路径(k8s clusterIP 服务),例如到员工食堂的路径。

由于地块都被带刺的铁丝网围着,所以你需要想办法让游客进入公园。有种方案是在铁丝网上打个洞,带颜色的路径一直延伸到这个洞上(k8s loadBalancer 服务),但是这意味你要以某种方式保护每个带颜色的路径。

所以,作为替代方案,你会选择带有准入的大门(k8s ingress )。土地的拥有者提供一些标准的大门,所以你的员工无需维护它们,它们也不会使用地块上的空间和电力。土地的拥有者还会负责构建从大门到地块的立交桥。未来,你可能还会需要更加专业化的准入大门(k8s Traefik )。

现在,你可以给准入大门的员工一些指令:

  1. 带有六岁以下儿童的游客要使用红色标线;
  2. 带有青少年的游客要使用绿色标线;
  3. ……

启动并让它运转起来

一切就绪之后,你的公园就可以运行起来了:

到此为止吗?

如你所愿!

关于 Kubernetes 的扩展性、污染(Taints)和亲密关系(affinities)以及 StatefulSets、持久化卷(Persistent Volumes)和无头服务(Headless Service)的内容可以阅读后续文章的详细介绍。

感谢张婵对本文的审校。

2018-08-21 18:244767

评论 1 条评论

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

从“青铜”到“王者”,制造企业的数字化闯关记

脑极体

埃森哲《2022中国企业数字化转型指数》: 中国企业数字化进程五年间稳步推进,17%企业成领军者

雨果

数字化转型

实时数据湖 Flink Hudi 实践探索

阿里云大数据AI技术

大数据 flink 企业号十月 PK 榜

LED显示屏安装之前要注意的问题

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

web前端开发培训有前途吗?

小谷哥

“程”风破浪的开发者|我的js之路

隔壁老帆帆

学习方法 1024 1024程序员节 “程”风破浪的开发者

和鲸 ModelWhale 入选《2022爱分析 · 数据智能厂商全景报告》

ModelWhale

机器学习 数据智能 数据科学 厂商

分层的电子签市场,被忽略的小微企业

ToB行业头条

Gartner:通过数字投资缩短价值实现时间的必要性

雨果

数字化转型 CIO

C#泛型协变和逆变概念学习

IC00

C# 上位机 10月月更

主导未来的前 5 大数据科学趋势,你知道几个?

雨果

数据科学 DaaS数据即服务

安全可控的企业级低代码开发平台

力软低代码开发平台

前端培训学习的人这么多,行业前景怎样

小谷哥

C# 关于多态性学习

IC00

C# 学习 上位机 10月月更

腾讯升级云原生产品布局 助力企业数字化转型更进一步

科技热闻

OpenHarmony将携新成果亮相HDC2022

OpenHarmony开发者

OpenHarmony

让你的 Runner 可视化,使用 Prometheus + Grafana 实现极狐GitLab Runner 可视化

极狐GitLab

DevOps Grafana Prometheus runner 极狐GitLab

数字化转型如何成为增长和创新的工具

雨果

数字化转型

壳牌公司利用数字孪生推动绿色工厂计划和氢能经济

雨果

数字化转型

再见 MySQL!这可能不再是一个哗众取宠的梗了

雨果

MySQL 关系型数据库 开源数据库

前端比较好的培训机构是哪家?

小谷哥

Java 字节码简介

Kian.Lee

Java JVM bytecode 字节码

数字孪生与未来城市建设

雨果

数字孪生

Hive基本架构

穿过生命散发芬芳

hive 10月月更

OneFlow源码解析:Global Tensor

OneFlow

人工智能 深度学习 源码解析

深圳开发培训学习怎么选择靠谱的机构?

小谷哥

九科信息RPA助力某大型航运企业财务部门降本增效,实现业务流程自动化操作

九科Ninetech

企业选型必读:选择数据湖or数据仓库?

雨果

数据仓库 数据湖

找个好用的录屏软件,怎么这么难?

淋雨

Camtasia

Mac Osx终端显示图片

Geek_pwdeic

terminal osx

这么多大数据培训机构怎么来选择呢

小谷哥

通俗易懂图解Kubernetes_DevOps & 平台工程_Daniel Lebrero_InfoQ精选文章