19张插画让你秒懂Kubernetes

下面内容是根据一个视频翻译过来的,比较形象

某一天

  有一天,女儿走进书房问我:『爸爸,什么是 Kubernetes 呢?』

  我回答她:『Kubernetes 是一个开源的 Docker 容器编排系统,它可以调度计算集群的节点,动态管理上面的作业,保证它们按用户期望的状态运行。通过使用「labels」和「pods」的概念,Kubernetes 将应用按逻辑单元进行分组,方便管理和服务发现。

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

  插画版 Kubernetes 指南

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

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

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

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

    Phippy想要解决上面所面临的问题!想要被管理并与外面的世界连接。

     『抱歉……孩子……』鲸鱼耸耸肩,一摇尾消失在了海平面下……就在 Phippy 甚至开始绝望时,一位驾驶着巨轮的船长出现在海平线上。这艘船由几十个绑在一起的木筏组成,但从外面来看,它就像一艘巨轮。

      『你好呀,可爱的PHP应用程序,我是 Kube 船长』, 老船长用充满智慧的语气对 Phippy 说。

      “Kubernetes” 在希腊语中是船长的意思。我们可以从这个单词中得到 Cybernetic 和 Gubernatorial 这两个词组。Kubernetes 项目专注于构建一个健壮的平台,用于在生产环境中运行数千个容器。

  『您好,我是 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 就这样在船上和自己的副本愉快地生活了好多天。但是每天只能面对自己的副本,时间一长,这样的生活也有点单调了。 

  就在Rhibby正无聊的时候,Kube 船长告诉她:『我有好东西给你。』

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

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

  多亏了这些service,Phippy 开始探索船的其他部分。不久之后,Phippy 遇到了 Goldie。他们成了很好的朋友。

        有一天,Goldie 做了一件不同寻常的事。她送给 Phippy 一件礼物。Phippy 看了礼物一眼,悲伤的泪水夺眶而出。

      『你为什么这么伤心呢?』Goldie 问道。

     『我很喜欢这个礼物,但我没有地方可以放它!』Phippy 抽噎道。

       但 Goldie 知道该怎么做。『为什么不把它放入卷中呢?』

        Volume 代表了一块容器可以访问和存储信息的空间,对于应用来说,volume 是一个本地的文件系统。实际上,除了本地存储,Ceph、Gluster、Elastic Block Storage 和很多其它后端存储都可以作为 volume。

  Phippy 渐渐地爱上了船上的生活,她很享受和新朋友的相处(Goldie 的每个 pod 副本也都很 nice)。但是回想起以前的生活,她又在想是不是可以有一点点私人空间呢?

  Kube 船长很理解:『看起来你需要 namespace。』

  Namespace 是 Kubernetes 内的分组机制。Service,pod,replication controller 和 volume 可以很容易地和 namespace 配合工作,但是 namespace 为集群中的组件间提供了一定程度的隔离。

  于是,在 Kube 船长的船上,Phippy 和她的朋友们开始了海上的历险,最重要的是,Phippy 找到了自己的家。

  从此,Phippy 过上了幸福的生活。

 转自:https://www.cnblogs.com/kouryoushine/articles/8007648.html(站在浪潮之巅)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值