Kubernetes 图解:主题公园类比
Kubernetes(以下简称“k8s”)带有自己的一套抽象概念和术语,但只要稍加想象,我们就可以将这些抽象概念与更熟悉的概念关联起来。
我希望香肠工厂的类比能够发挥作用,但不幸的是,k8s 不仅仅是香肠,所以我们只能采用主题公园的类比。
以下内容基于Google Kubernetes Engine;如果在其他提供商中或者您自己运行 k8s,某些概念可能会略有不同。
你是谁
您是 Kubenelius Fizzbuzz,一位刚刚毕业的 MBA,专门研究各种尺寸的盒子,您即将开始您最伟大的想法:KubePark 主题世界。
有趣的骑行计划
要启动 KubePark,你需要规划好它的游乐设施。你决定,对于每个景点,你只需要填写一个类似这样的模板(k8s部署):
这里您说的是 KubePark 将有三个 1909 旋转木马。
1909 旋转木马由两部分组成:一个经典旋转木马和一个棉花糖摊位。每个部分(k8s容器)都将通过无人机装在一个巨型箱子里运送,这些箱子已完全组装好,拆箱后即可运行。
每个景点都将被围栏包围,与其他景点隔离,这样某个景点的问题就不会蔓延到其他景点。但景点的各个部分构成一个不可分割的整体(Kubernetes Pod),因此不存在任何障碍或防火墙,不会妨碍各部分之间的通信或移动,从而影响游客的体验(除非您想共享文件,这需要一些配置)。
有了围栏,你就需要规划好访客入口(k8s containerPort)的位置。以 1909 年的旋转木马为例,游客会穿过棉花糖摊位:一边享受蓬松的大糖云,一边乘坐旋转木马总是更有趣。
该模板还指定了大小(k8s 内存)、功耗(k8s CPU)、k8s资源要求,以及将 1909 旋转木马标记为旋转木马、儿童友好型和经典景点的标签(k8s标签)。稍后我们将看到如何使用所有这些信息。
在模板的背面(上面未显示),您需要写下每个部件的维护说明(k8s探针)。您的团队将定期遵循这些说明,以了解是否有任何部件需要更换。如果需要更换,维护人员会将故障部件彻底烧毁,并用无人机运送另一个装有替换件的大箱子。因此,无需费力尝试修复任何东西,只需简单地更换整个展台或旋转木马即可。在更换期间,即使某些部件仍处于工作状态,景点也将对游客关闭:1909 年的旋转木马体验必须包含棉花糖和旋转木马游乐设施,两者密不可分。
土地
有趣的游乐设施规划好了,现在是时候建造公园了。
你与房东签订了租赁合同(k8s节点池) :
该合同针对两块土地(K8S节点),每块土地都具有指定的面积(K8S 内存)和发电机(K8S CPU)。请注意,该合同并非针对两块特定的土地,而是针对任何两块具有这些特征的土地,土地所有者的职责就是找到它们。借助现代客运交通工具,它们甚至不需要相邻。
房东还负责确保包裹的通道安全,在每个包裹周围安装铁丝网。
您还需勾选免费灾难保险(K8S自动修复):如果某个地块无法使用,房东将用另一个具有完全相同特性的地块替换。房东将全权负责查明并确定该地块是否无法使用,并进行替换。
最后,合约提供的任何地块都将被标记为(再次使用K8S标签)具有地中海气候的平原。稍后我们将看到如何使用这些信息。
构建KubePark
您已经付出了足够多的努力,所以您将公园建设的细节委托给了您的控制团队。控制团队将确保您在计划中指定的景点数量和类型始终正常运作。
您的房东出乎意料地慷慨解囊,提供了一个空中交通管制塔(Kubernetes集群主机),用于容纳管制人员,并负责塔台可能需要的任何维护和改进工作。这样就省心多了!
从塔的优越位置和手中掌握的游乐设施计划来看,您的工作人员将决定在哪些地块上建造每个景点,确保地块的可用空间和备用电力可以满足景点所需的空间和备用电力(k8s资源服务质量)。
景点始终会获得所需的最低功率(k8s CPU),绝不会超过最大功率(否则会导致短路和烧毁)。只有在包裹中有备用电源的情况下,才会获得额外的功率(超过最低功率)。如果没有备用电源,景点的运行速度就会变慢。
Conga Dancing Party Line 拥有最小和最大容量(k8s 内存)。它始终会获得指定的最小容量,但如果其长度超过最大容量,就会被关闭。众所周知,过长的 Conga 最终会导致混乱!如果地块中有剩余空间,它会获得额外的空间(超过最小容量),但如果没有剩余空间,超过最小容量的景点将被关闭。由交通控制塔决定关闭哪个景点,可能是 Conga Dancing Party Line 本身,也可能是其他景点。
由于空间和电力充足,团队可以轻松打造您规划的所有游乐设施。公园即将完工!
KubePark 开业
为了帮助游客到达他们的景点,您决定最简单的方法是使用彩色路径导航器(k8s nodePort 服务),例如:
图片来源:伦敦维多利亚车站地板线,由Cmglee提供。
在这里,您决定创建一条蓝色通道,将游客引导至您标记为“经典”的景点,以及一条绿色通道,将游客引导至您标记为“过山车”的景点。您可以根据需要选择具体或通用的通道,并根据需要组合多个标签。
此寻路器不仅适用于访客,您的内部工作人员也可以使用它,您甚至可以创建仅对您的工作人员可见的路径(k8s clusterIP 服务),例如查找工作人员的食堂。
由于地块完全被铁丝网包围,你需要想办法让游客进入公园。一个方案是沿着一条彩色小路一直延伸到铁丝网,并在铁丝网上开个洞(使用 Kubernetes负载均衡服务),但这意味着你需要以某种方式确保每条彩色小路的安全。
因此,您选择设置一些入口门(k8s ingress)。您的房东会提供一些标准入口门,这样您的工作人员就无需维护它们,它们也不需要您地块的空间或电力。房东还会负责在入口门和地块之间搭建一个立交桥。也许将来您会选择更专业的入口门(例如Traefik之类的 k8s )。
你向入口处的工作人员提供了一些简单的指示:
- 带着六岁以下儿童的游客应使用红色通道。
- 仅带青少年的游客应使用绿色通道。
- ...
启动并运行!!!
这样,您的公园就可以运行了:
就这些吗?
你想要的!
您可以阅读有关 Kubernetes扩展、污点和亲和力以及StatefulSets、持久卷和无头服务的更多信息!
文章来源:https://dev.to/danlebrero/kubernetes-explained-in-pictures-the-theme-park-analogy-3d99