[译] Kubernetes 儿童插图指南

Kubernetes 儿童插图指南

献给全部试图向孩子们解释软件工程的家长。前端

好久好久之前,有一个叫 Phippy 的应用程序。她是一个简单的应用程序,由 PHP 编写且只有一个页面。她住在一个须要和其余可怕的应用程序分享环境的主机中,她不认识这些应用程序而且不肯意和他们来往。她但愿她能拥有一个属于本身的环境:只有她本身和她能够称之为家的 Web 服务器。android

每一个应用程序都有个运行所依赖的环境。对于 PHP 应用程序来讲,这个环境可能包括 Web 服务器,一个可读文件系统和 PHP 引擎自己。ios

有一天,一只善良的鲸鱼出现了。他建议小 Phippy 住在容器里,这样可能会更快乐。因此应用程序 Phippy 迁移到了容器中。这个容器很棒,可是……它有点像一个漂浮在大海中央的豪华起居室。git

容器提供了一个独立的环境,应用程序能够在这个环境中运行。可是这些孤立的容器经常须要被管理并与外面的世界链接。对于孤立的容器而言,共享文件系统、网络通讯、调度、负载均衡和分发都是要面对的挑战。github

鲸鱼耸了耸肩。“对不起,孩子。”他说着,消失在海面下。就在 Phippy 甚至开始绝望时,一位驾驶着巨轮的船长出如今海平线上。这艘船由几十个绑在一块儿的木筏组成,但从外面来看,它就像一艘巨轮。后端

“你好呀,这位 PHP 应用程序朋友。我是 Kube 船长。”睿智的老船长说。服务器

“Kubernetes” 在希腊语中是船长的意思。咱们能够从这个单词中获得 CyberneticGubernatorial 这两个词组。Kubernetes 项目专一于构建一个健壮的平台,用于在生产环境中运行数千个容器。网络

“我是 Phippy。”小应用程序说。负载均衡

“很高兴认识你。”船长一边说,一边在她身上贴上了一张标有姓名的标签。ide

Kubernetes 使用标签做为“名牌”来标识事物。它能够根据这些标签进行查询。标签是开放性的:你能够用他们来表示角色、稳定性或其余重要的属性。

船长建议应用程序把她的容器搬到船上的一个船舱中。Phippy 很高兴地把她的容器搬到 Kube 船长巨轮的船舱内。Phippy 以为这里像家同样。

在 Kubernetes 中,Pod 表明一个可运行的工做单元。一般,你会在 Pod 中运行一个容器。可是对于一些容器紧密耦合的状况,你能够选择在同一个 Pod 中运行多个容器。Kubernetes 负责将你的 Pod 和网络以及 Kubernetes 的其他环境相连。

Phippy 有一些不一样寻常的兴趣,她很喜欢遗传学和绵羊。因此她问船长:“若是我想克隆我本身,是否能够根据需求克隆任意次数呢?”

“这很容易。”船长说。船长把 Phippy 介绍给了 Replication Controller。

Replication Controller 提供一种管理任意数量 Pod 的方法。一个 Replication Controller 包含一个 Pod 模板,该模板能够被复制任意次数。经过 Replication Controller,Kubernetes 将管理 Pod 的生命周期,包括伸缩、滚动更新和监控。

无数个日夜,小应用程序在她的船舱中与她的复制品相处十分愉快。但与本身为伍并无所说的那么好……即便你拥有 N 个本身的克隆体。

Kube 船长慈祥地笑了笑:“我正好有同样东西。”

他刚开口,在 Phippy 的 Replication Controller 和船的其余部分之间打开了一条隧道。Kube 船长笑着说:“即便你的复制品来了又去,这条隧道始终会留在这里,你能够经过它发现其余 Pod,其余 Pod 也能够发现你!”

服务告知 Kubernetes 环境的其他部分(包括其余 Pod 和 Replication Controller)你的应用程序包含了哪些服务,当 Pod 来来每每,服务的 IP 地址和端口始终保持不变。其余应用程序能够经过 Kurbenetes 服务发现找到你的服务。

多亏了这些服务,Phippy 开始探索船的其余部分。不久以后,Phippy 遇到了 Goldie。他们成了最好的朋友。有一天,Goldie 作了一件不一样寻常的事。她送给 Phippy 一件礼物。Phippy 看了礼物一眼,悲伤的泪水夺眶而出。

“你为何这么伤心呢?”Goldie 问道。

“我喜欢这个礼物,但我没有地方能够放它!”Phippy 抽噎道。

但 Goldie 知道该怎么作。“为何不把它放入卷中呢?”

卷表示容器能够访问和存储信息的位置。对于应用程序,卷显示为本地文件系统的一部分。但卷能够由本地存储、Ceph、Gluster、持久性块存储,以及其余存储后端支持。

Phippy 喜欢在 Kube 船长的船上生活,她很享受来自新朋友的陪伴(Goldie 的每一个克隆人都一样使人愉悦)。可是,当她回想起在可怕的主机度过的日子,她想知道她是否也能够拥有一点本身的隐私。

“这听起来像是你所须要的,”Kube 船长说,“这是一个命名空间。”

命名空间是 Kubernetes 内部的分组机制。服务、Pod、Replication Controller 和卷能够在命名空间内部轻松协做,但命名空间提供了与集群其余部分必定程度的隔离。

Phippy 与她的新朋友一块儿乘坐 Kube 船长的巨轮航行于大海之上。她经历了许多伟大的冒险,但最重要的是,Phippy 找到了本身的家。

因此 Phippy 今后过上了幸福的生活。

若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏

相关文章
相关标签/搜索