- 原文地址:The Illustrated Children’s Guide to Kubernetes
- 原文做者:CLOUD NATIVE COMPUTING FOUNDATION
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:江五渣
- 校对者:mymmon,csming1995
献给全部试图向孩子们解释软件工程的家长。前端
好久好久之前,有一个叫 Phippy 的应用程序。她是一个简单的应用程序,由 PHP 编写且只有一个页面。她住在一个须要和其余可怕的应用程序分享环境的主机中,她不认识这些应用程序而且不肯意和他们来往。她但愿她能拥有一个属于本身的环境:只有她本身和她能够称之为家的 Web 服务器。android
每一个应用程序都有个运行所依赖的环境。对于 PHP 应用程序来讲,这个环境可能包括 Web 服务器,一个可读文件系统和 PHP 引擎自己。ios
有一天,一只善良的鲸鱼出现了。他建议小 Phippy 住在容器里,这样可能会更快乐。因此应用程序 Phippy 迁移到了容器中。这个容器很棒,可是……它有点像一个漂浮在大海中央的豪华起居室。git
容器提供了一个独立的环境,应用程序能够在这个环境中运行。可是这些孤立的容器经常须要被管理并与外面的世界链接。对于孤立的容器而言,共享文件系统、网络通讯、调度、负载均衡和分发都是要面对的挑战。github
鲸鱼耸了耸肩。“对不起,孩子。”他说着,消失在海面下。就在 Phippy 甚至开始绝望时,一位驾驶着巨轮的船长出如今海平线上。这艘船由几十个绑在一块儿的木筏组成,但从外面来看,它就像一艘巨轮。后端
“你好呀,这位 PHP 应用程序朋友。我是 Kube 船长。”睿智的老船长说。服务器
“Kubernetes” 在希腊语中是船长的意思。咱们能够从这个单词中获得 Cybernetic 和 Gubernatorial 这两个词组。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 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。