有一天,程序员问大师,什么是 Kubernetes?
大师说:“Kubernetes 是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful)……”
可想而知,大师当场就被打死了。
为了让大家更好地理解 Kubernetes ,今天给大家带来了一个插画版的 Kubernetes 教程,可以让你对 Kubernetes 的关键技术点有一个大致的了解。
Written by: Matt Butcher & Karen Chu
Illustrated by: Bailey Beougher
Designed by: Karen Chu
实验楼翻译:
“我很无聊,菲比阿姨,”Zee 懒洋洋地躺在沙发上说,“我们今天要做什么?”
“为什么不去看看动物呢?”菲比笑着说。“我们去动物园吧!”
“Yeah!”Zee 高兴地叫着,准备出发!
来到动画园,他们遇到的第一批动物是蓝色毛茸茸的,有松鼠那么大,每个小动物都带着一个小盒子,不停地来回穿梭。
菲比说,“这些叫 Pod。他们整天整夜地跑来跑去,拖着小箱子。”
“他们每天只做这些吗,菲比阿姨?”
“是的,它们的一生中只做这件事,运行。”
在 Kubernetes 中,Pod 负责运行容器,每个 Pod 至少有一个容器,并控制该容器的执行。当容器退出时,Pod 也会消失。
两人继续往前走,他们看到了一个很大的玻璃围场,紧贴着窗户的是一排洋溢着幸福的小猫鼬的脸。
“那些是复制品(ReplicaSets)。”菲比说。
在 Zee 的注视下,右边那张脸咧开嘴笑了,然后从窗台上滑了下来,大家齐声跳了起来,接着,一只长得一模一样的猫鼬从左边跑了过来。
菲比解释说:“每次一个小模型掉下来,另一个就会跳起来。”
ReplicaSets:分布式管理副本集,用来确保一组相同配置的 Pod 以所需的数量运行。如果一个 Pod 脱离运行,ReplicaSets 会创造一个新的顶上去。
继续往前走,Zee 指向一处洞穴和丛林,虽然有很多迹象表明,该地区有人居住,但菲比和 Zee 都看不见任何动静。
“秘密就在这里,”菲比说。“没有这些带解码器的眼镜,你就看不见它们。”
Zee 接过菲比递来的眼镜,戴上后脸都红了:“噢,天啊。我想我该走了,现在。”
把眼镜递了回去,他们继续往前走。
Secrets 用于存储非公共信息,如令牌、证书或密码。它可以在运行时附加到Pods 上,以便将敏感的配置数据安全地存储在集群中。
一群蜥蜴聚集在池塘岸边的一个大弹弓旁,中心有一个小岛。一只蜥蜴跳上了弹弓,其他蜥蜴把它弹向了小岛。
“「部署」派了一群人去岛上,现在,他们正努力让三个人到那儿。” 菲比说。
就在这时,另一只蜥蜴腾空而起,但随着池塘里巨大的水花,它没有到达小岛。
菲比说:“如果失败了,他们就会继续努力,直到得到他们想要的。
部署(Deployments):Deployment 用来控制部署和维护一组 Pod(是将Pod实际部署到群集的方式)。在后台,它使用一个 ReplicaSet 来保持 Pod 的运行,而且为部署、更新和扩展集群中的 Pod 提供了高级功能。
一个长满草的小山丘上,有几根石柱,每根石柱的顶端都坐着一只秃鹫。在 Zee 和菲比的注视下,一只秃鹫展开了翅膀,扑扇着翅膀飞向远方。一个刚走,另一个就来了。
Zee 问:“他们在做什么?”
“那些是「DaemonSet」,” 菲比说,“它们一定要占据每根柱子,不管下雨还是下雨,白天还是晚上。” 菲比笑着说:“我敢打赌,如果我们增加一根新柱子,一只新鸟就会降落在柱子上,比你说 ‘cube cuddle’ 的速度还快。”
DaemonSets 提供了一种方法来确保 Pod 的副本在集群中的每个节点上运行。当集群发展或收缩时,DaemonSet 将这些有特殊标记的 Pods 部署到所有节点上。
他们继续往前走,来到了一个水族馆前,里面有一个巨大的礁石。礁石看起来能阻止任何东西,从一边传到另一边。
Zee 看到数百条小鱼向岩石表面的中心冲去,这些鱼全速游进岩石表面的洞里,很快就消失不见了。
Zee 发出一声惊叹,五颜六色的鱼群从礁石的另一边迸发出来。这些鱼似乎不是从一个单独的洞里钻出来的,而是从礁石的各处小裂缝里钻出来的。
“入口真漂亮啊,” 菲比看得如梦似幻。
Zee 也着了魔,低声说:“嗯哼。”
Ingresses 提供一种方法,用于将群集外部的访问,传入到群集内部的目的地。一个外部的Ingresses 入口可以导向许多不同的内部服务。
一群浣熊一动不动地躺在围栏里,Zee 指了指他们问:“他们怎么了?”
突然,其中一只跳了起来,做了一个开合跳,然后又趴下来继续打盹。
“他们是「CronJobs」,” 菲比说。“大多数时候,他们只是睡觉,但他们会周期性地完成特定的任务。”
就在她说话的时候,另一只又猛地站了起来,抓起一把扫帚,打扫了整个围栏,然后继续睡觉。“菲比阿姨,我可以把它带回家来打扫我的房间吗?” 菲比笑了,他们继续往前走。
CronJobs 提供了一种调度 pod 的方法。它非常适合执行定期任务,比如备份、报告和自动化测试。
Zee 突然停了下来。在远处,出现了一个黑色栅栏。上面的拱形标记写着 C-R-D。
在里面,Zee 看到了一些奇怪的小动物:长着河马头的长颈鹿,有浣熊耳朵的蛇,有海狸尾巴的狮子,没有角的独角兽…… Zee 也无法确定自己是否喜欢这些动物的外观。
CustomResourceDefinitions,简称 CRD,它提供了一种扩展机制,集群的操作人员和开发人员可以使用它来创建自己的资源类型。
“哦,” Phippy 满脸担忧地说,“看,午饭时间到了,我们该回家了。”
Zee 松了一口气。“回家的时候可以在库伯船长的奶昔店停一下吗?”
(Zee 恋恋不舍地走了,出门前,他回过头又看到了飞翔的蜥蜴)
(还记得这是哪个知识点吗)
Kubernetes 是近两年来 Docker 最为火热的开源项目之一。现今已经成为了国内外技术大厂探索的方向。国外的 Google、Amazon、Microsoft 都在布局 Kubernetes,国内的阿里、腾讯、华为等知名公司也都在追逐。
如果说 Docker 开启了容器时代,那 Kubernetes 则革新了我们对于云计算、软件开发流程、业务平台等方面的认知。如果你是个决心要在云计算领域深入发展的人,熟悉 Kubernetes 非常有必要。
特别是对运维工程师来说,掌握 Kubernetes 能让你以一己之力维护上千节点,实现月薪 3000 到 30000 的跨越:
实验楼推出「楼+ 之 Kubernetes 实战」,6 周时间带你打通 Docker、Kubernetes 的任督二脉,成为有真正工作能力的 Kubernetes 初级工程师!
课程包含:70 余实验 + 25 个挑战 + 解析视频,同时提供了全程助教答疑、共享桌面支持、代码人工审阅、班主任督学、毕业报告证书等服务。
「楼+ 之 Kubernetes 实战」课程限时优惠中噢,大家可以点击查看。