煮饺子与docker、kubernetes之间的关系
周末煮饺子聊到容器问题周末和老婆一起包了顿饺子“老公我去买瓶醋你把饺子先煮一下吧”。我笨手笨脚准备半天还没煮完老婆就回来了。我看着这一锅饺子问道“老婆你说这饭店是怎么煮饺子的啊每个人口味不一样饭量也都不一样啊想想都头疼”小娜同学一边用手比划一边说“饭店当然不能像家里这么煮饺子啊他们有一种特制的锅就是那个、那个样子的”。我感觉自己娶了一个傻女人“到底是哪个样子的用手能比划出来啊你是不是爱情公寓看多了”。老婆听到我的抱怨拿起手机搜索了一下“诺就是这个样子的你个白痴”“饭店就是用这种锅煮饺子的水是一锅水炉是一个炉分成多个容器每个容器里面放入一个客人点的饺子就可以啦。”作为生活小能手的小娜同学知道的可真多。“哎我去这不就是一个服务器启动了多个docker容器么”同样作为程序员的小娜赞到“老公你说的还真对哈我最近可是刚看了docker呢但我还不太会用”。二、说说docker与煮饺子的容器你一个前端学什么docker。小娜不服气了哎你别瞧不起人我还知道k8s呢。这可让我有点意外正当我意外之时老婆一句话差点让我喷出来那k8s到底是个什么东西啊我们商量好饭后她刷碗我给她说说docker与k8。不一会就开始了饭后辅导饭店煮饺子本身就是一种服务应用服务煮饺子的锅就像一个服务器锅里的每一个网状笼就像一个docker容器通常情况下一个网状笼只煮一种饺子就像一个docker容器通常只提供一个服务微服务。同一个服务器上的docker容器之间能够进行必要的隔离避免资源冲突不同馅的饺子煮混。又能充分的共享服务器资源那一锅水和供电达到资源的合理利用避免浪费。小娜微笑点点头表示明白了”那饭店规模变大客人越来越多就得买更多的大锅服务器啊那是当然喽你看哈当服务器越来越多的时候就组成了集群。docker容器还有一个好处就是它的标准化标准化在这里就代表了部署灵活性。假如一号锅突然断电了煮饺子的师傅就可以把煮饺子的容器拔出来插入二号锅因为容器的标准是一样的。就像docker容器可以灵活快速的启动在不同的服务器上启动提供服务。小娜同学再次的点了点头向我投来仰慕的眼光。趁热打铁我总结道”docker容器有效的实现了服务的环境封装的标准化以及同服务器容器之间的环境隔离资源共享“。三、聊聊集群煮饺子k8s小娜同学对于接下来的内容已经迫不及待了docker我懂了快说说k8s。我故弄玄虚的说到你看哈现在这个饭店的集群容器煮饺子的模式还需要解决哪些问题我们俩讨论了一下总结了下面这几条饭店的客流量不总是满的大锅的个数肯定是按照最大需求买的但是肯定有部分的时间大锅是闲置的。客流量肯定是有一定的规律的吧比如周末比工作日客流量大下班后比上班时间客流量大。假如突然来了一个旅游团进来用餐谁来做应急管理快速的给大锅插电烧水满足用餐需求如果为了避免煮出来的饺子味道混淆是不是素馅类不同容器的放到一个大锅里面煮肉馅的放在一起煮、海鲜馅的放在一起煮会好一些是不是得有人定期的对“大锅”和大锅里面的容器进行卫生检查、运行状态(健康检查)是不是得有一个人清楚的知道素馅的一两饺子是唐僧的肉馅的四两饺子是猪八戒的其实还有很多需要注意的问题所有的这些都可以归纳为任务分配或者是服务编排或者是容器的编排问题。k8s的主要作用就是用来解决类似这样的一些问题根据访问量大小快速的对容器数量进行扩容、缩容。遵循一定的预定计划来执行容器编排工作、应急管理工作、健康检查工作合理的编排容器有些容器放在CPU密集型的服务器上有些容器放在内存密集型容器上。毕竟有的容器运行的是计算型微服务有的容器运行的是耗内存的微服务。合理的编排能够达到资源的最大利用率。