专栏名称: 石杉的架构笔记
专注原创、用心雕琢!十余年BAT一线大厂架构经验倾囊相授
目录
相关文章推荐
纪法指引  ·  【镜鉴】政法委书记向阳,主动投案! ·  3 天前  
CHINADAILY  ·  Top News丨200 telecom ... ·  3 天前  
51好读  ›  专栏  ›  石杉的架构笔记

你闺女也能看懂的插画版 Kubernetes 指南

石杉的架构笔记  · 公众号  ·  · 2019-09-09 09:01

正文

公众号后台回复“ 学习 ”,获取作者独家秘制精品资料


扫描下方海报二维码,试听课程:



本文转自

灵雀云-周小璐(微信号:AlaudaCloud)


Matt Butcher 是 Deis 的平台架构师,热爱哲学,咖啡和精雕细琢的代码。


有一天女儿走进书房问他什么是Kubernetes,于是就有了这本插画版的Kubernetes 指南,讲述了勇敢的 Phippy(一个PHP应用),在Kubernetes的冒险故事,满满的父爱有木有!


视频版:



Hope You Enjoy The Story~



有一天,女儿走进书房问我:「亲爱的爸爸,什么是Kubernetes呢?」



我回答她:「Kubernetes是一个开源的Docker容器编排系统,它可以调度计算集群的节点,动态管理上面的作业,保证它们按用户期望的状态运行。


通过使用「labels」和「pods」的概念,Kubernetes将应用按逻辑单元进行分组,方便管理和服务发现。」


女儿更疑惑了……于是就有了这个故事


很久很久以前,有一个叫Phippy的PHP应用,她很单纯,只有一个页面。她住在一个托管服务里,周围还有很多可怕的应用,她都不认识,也不想去认识,但是他们却要共享这里的环境。


所以,她一直都希能有一个属于自己的环境:一个可以称作home的webserver。



每个应用的运行都要依赖一个环境,对于一个 PHP 应用来说,这个环境包括了一个webserver,一个可读的文件系统和 PHP 的 engine。



有一天,一只可爱的鲸鱼拜访了 Phippy,他建议 Phippy 住在容器里。Phippy 听从了鲸鱼的建议搬家了,虽然这个容器看起来很好,但是……怎么说呢,就像是漂浮在海上的一个小房间一样,还是没有家的感觉。



不过容器倒是为应用提供了隔离的环境,在这个环境里应用就能运行起来。但是这些相互隔离的容器需要管理,也需要跟外面的世界沟通。共享的文件系统,网络,调度,负载均衡和资源分配都是挑战。


「抱歉……孩子……」鲸鱼耸耸肩,一摇尾消失在了海平面下……Phippy还没有来得及失望,就看到远方驶来一艘巨轮,掌舵的老船长非常威风。这艘船乍一看就是大了点,等到船走近了,Phippy才发现船体两边挂满了皮筏。



老船长用充满智慧的语气对Phippy说:「你好,我是Kube船长」。



「Kubernetes」是希腊语中的「船长」,后来的『Cybernetic』和『Gubernatorial』这两个词就是从 Kubernetes 衍生来的。Kubernetes项目由Google发起,旨在为生产环境中成千上万的容器,构建一个健壮的平台。



「您好,我是Phippy。」


「很高兴认识你。」船长边说,边在Phippy身上放了一个name tag。



Kubernetes使用label作为『nametag』来区分事物,还可以根据label来查询。label是开放式的:可以根据角色,稳定性或其它重要的特性来指定。



Kube船长建议Phippy可以把她的容器搬到船上的pod里,Phippy很高兴地接受了这个提议,把容器搬到了Kube的大船上。Phippy感觉自己终于有家了。


在Kubernetes中,pod代表着一个运行着的工作单元。通常,每个pod中只有一个容器,但有些情况下,如果几个容器是紧耦合的,这几个容器就会运行在同一个pod中。Kubernetes承担了pod与外界环境通信的工作。


Phippy对这一切都感到很新奇,同时她也有很多与众不同的关注点:『如果我想要复制自己该怎么做呢?按需的……任意次数的可以吗?』


『很简单。』船长说道,接着就给Phippy介绍起了replication controller。



Replication controller提供了一种管理任意数量pod的方式。一个replication controller包含了一个pod模板,这个模板可以被不限次数地复制。通过replication controller,Kubernetes可以管理pod的生命周期,包括扩/缩容,滚动部署和监控等功能。


Phippy就这样在船上和自己的副本愉快地生活了好多天。但是每天只能面对自己的副本,这样的生活也太孤单了。


Kube船长慷慨地笑道:『我有好东西给你。』


说着,Kube船长就在Phippy的replication controller和船上其它地方之间建了一个隧道:『就算你们四处移动,这个隧道也会一直待在这里,它可以帮你找到其它pod,其它pod也可以找到你。』


service可以和Kubernetes环境中其它部分(包括其它pod和replication controller)进行通信,告诉它们你的应用提供什么服务。Pod 可以四处移动,但是service 的 IP 地址和端口号是不便、变的。而且其它应用可以通过Kubernetes的服务发现找到你的service。



有了service,Phippy 终于敢去船上其它地方去玩了,她很快就有了新朋友Goldie。有一天,Goldie送了Phippy一件礼物,没想到Phippy只看了一眼就哭了。


『你怎么哭了?』Goldie问道。







请到「今天看啥」查看全文