解释图片中的Kubernetes:类比做主题公园

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 本文将Kubernetes比如主题公园,用类比的手法,将Kubernetes相关的一些核心概念比作主题公园的类似功能的设备,包括Kubernetes container,Kubernetes pod,Kubernetes containerPort,Kubernetes resources,Kubernetes labels,Kubernetes memory,Kubernetes probes,Kubernetes node pool,Kubernetes CPU,Kubernetes nodes等一些概念。
本文将Kubernetes比如主题公园,用类比的手法,将Kubernetes相关的一些核心概念比作主题公园的类似功能的设备,包括Kubernetes container,Kubernetes pod,Kubernetes containerPort,Kubernetes resources,Kubernetes labels,Kubernetes memory,Kubernetes probes,Kubernetes node pool,Kubernetes CPU,Kubernetes nodes等一些概念。

Kubernetes(下文简称k8s)有它自身的一些抽象概念和术语。但我们只要稍加想象,就可以将那些抽象的事物和很熟悉的概念联系起来。

我希望将它类比做香肠工厂,但不幸的是k8s不仅仅是香肠,所以我们不得不将它类比做主题公园。

下面的描述基于 Google Kubernetes Engine ,如果你运行在其他的供应商或者运行在自己的k8s上,一些概念可能会有少许不同。

你是谁

你是Kubenelius Fizzbuzz,一个刚毕业于MBA的学生,拥有Boxes Of All Sizes 的专长,你要去实践你最伟大的想法:KubePark主题世界(KubePark Theme World)。

有趣的旅行计划

为了启动KubePark计划,你需要去计划这场有趣的旅行。你决定,对于每一个景点,你需要填写类似这样的一个模板(k8s部署):
kubernetes-deployment.jpg


你可以说在这里KubePark将会拥有3个1909年的旋转木马。

一个1909年的旋转木马由两部分组成:一个经典的旋转木马加上一个棉花糖的摊位。每个部分(k8s容器)将由无人机在一个巨大的盒子里传送,完整的组装好,并准备好一旦打开就可以转动。


每一个景点将被栅栏包围,以将它与其他景点隔离,这样一个景点的问题就不能蔓延到其他景点。但是景点的各部分组成了不可分隔的一个整体(k8s pod),所以在它们之间没有任何障碍或防火墙,它们可以毫无困难的在各部分之间交流或移动,这可能会破坏游客的感受(k8s,除非你想要共享文件会需要一点配置)。


有一个栅栏意味着你需要计划一下游客的访问的门(k8s 容器端口)开在哪里。在1909年的旋转木马中,游客将经过棉花糖的摊位;在享受一个蓬松的的棉花糖的同时,旋转木马旅行将变得更加有趣。

这个模板还指定了大小(k8s内存)和电源(k8s CPU)需求(k8s资源),标记(k8s 标签)1909年的旋转木马为一个对小孩友好的、经典的的景点的旋转木马。接下来我们将看你将如何使用这些信息。

模板的另一面,并没有被展示在上面,你将写下每一部分的维护说明(k8s probes)。你的工作人员将会定期按照那些说明查看是否有某个部分需要替换。如果有的话,维护人员会将有缺陷的部件拿走,无人机将会带来另一个巨大的盒子来替换它。所以不要再试图去修复任何东西,只是简单的替换整个摊位或者旋转木马。在替换期间景点将对游客关闭,即使某些部分依然处于工作状态:1909年的旋转木马体验必须有棉花糖和旋转木马设备,两者是不可分离的。

土地

按照有趣的旅行计划,是时候建立这个公园了。

你和房东签署了一个租赁合同(k8s node pool)。
kubernetes-node-pool.jpg


这个合同包含两块土地(k8s nodes),每一块都有特定的大小(k8s内存)和发电机(k8s CPU)。请注意,这份合同并不是针对两块特定的土地,但对于具有这些特征的任何两个块土地,找到它们是房东的工作。凭借现代化的客运方式,它们甚至不需要相邻。

房东通过给每块(土地)安装带刺的金属网来保护每块(土地)的安全。

你获得了免费的灾害保险(k8s自动装载)箱:如果一块(土地)变得不可用了,房东将会用一块有完全相同的特质的土地去替换它。找到并确定这块(土地)不可用的时候替换它是房东的唯一责任。

最后,合同提供的任何一块(土地)都将被贴上标签(k8s标签),并作为地中海气候的平原地带。接下来我们将看到如何去使用这些信息。

建立KubePark

你已经工作足够努力,所以你将公园的建设的细节委托给你的控制人员。那些人员将确保你在计划中指定的确切数量和类型的景点一直在工作。

意料之外的慷慨,你的房东给你的控制人员提供了一个空中交通管制塔(k8s集群master),并由他去关注管制塔所需要的任何维护和提升工作。少关心一件事情!

从管制塔的特权地位和你的有趣的旅行计划考虑,控制人员将决定哪块土地建设哪个景点,确保每块(土地)的可利用空间和备用电源可以承载一个景点所必须的那些东西(k8s的服务质量)。

一个景点总是会得到所必须的最小功率(k8s CPU),从来不会超过它的最大功率(因为它会造成短路和燃烧),并且如果有多余的空间(超过最小值)就会得到额外的功率。如果没有多余的空间,景点的设备移动就变得更加的缓慢。

康茄舞会路线有最小和最大尺寸(k8s内存)。它总是会得到特定的最小尺寸,但是如果超过最大的尺寸,它将会关闭。大家都知道太长时间的康茄舞总是以野蛮的暴乱告终。如果那块(土地)里有多余的空间,它将获得额外的空间(超过最小空间),但如果没有,超过最小空间的景点将被关闭。由交通管制塔来决定哪条路线以是康茄舞会路线。

由于有足够的空间和电源,团队可以毫无问题地创建您计划的所有景点。公园快准备好了!

开启KuberPark

为了帮助游客到达他们要去的景点,你决定去使用最简单的类似下图的彩色的路径查询器(k8s nodePort service):
kubernetes-nodeport-service.jpg
该图片贡献者:London Victoria station floor lines by Cmglee.
在这里,你决定创建一条蓝线,带游客去你称之为“经典”的景点,一条绿线,带他们去你称之为“过山车”的景点。你可以根据需要使用特定的或通用的标记,如果需要,还可以组合多个标记。
这个道路查询器不仅仅是针对游客的,你的内部人员也可以使用他,甚至于你可以创建只有你们团队(k8s clusterIP service)可见的路径,例如找到员工食堂。
因为这块(土地)被铁丝网完全包围着,你需要以某种方式让游客进入公园。一种选择是,从一条彩色的小路一直走到铁丝网,在上面挖个洞(k8s loadBalancer service),但是这意味着你需要以某种方式保护每一条有颜色的道路。
所以你选择设置一些入场的门(k8s ingress).你的房东提供了一些标准的大门,从而让你的团队不需要去维护他们,他们也不需要你这块(土地)的空间或能量。房东还会负责修建一个从大门到这块(土地)的立交桥。也许将来你会选择更专业的入场门(k8s就像Traefik)。
你给准入门的工作人员一些简单的指示:
1. 带着6岁以下儿童的游客应使用红色通道。
2. 带着青少年的游客应使用绿色通达。
3. ...
启动和运行!
有了这个,你的公园准备好了:
kubernetes-explained-in-pictures.jpg
难道就这些吗?
如你所愿。

你可以阅读更多的关于Kubernetes缩放,污染和亲和性,状态集,持久卷和无领导服务。

本文转自DockOne-解释图片中的Kubernetes:类比做主题公园

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
Kubernetes 负载均衡 API
Kubernetes通俗讲解
Kubernetes(K8s)是自动部署、扩展和管理容器化应用的开源平台,源自Google的Borg系统。它简化了大规模容器应用的部署和维护,支持自动部署、扩展、高可用性、服务发现与负载均衡及存储管理。K8s具有Master和Node节点架构,涵盖API Server、Scheduler等组件,其核心概念包括Pod、Service、Deployment和Namespace。使用时需安装集群、定义资源配置文件并应用配置。K8s具备可移植性、可扩展性、自动化及强大的社区支持等优势。
61 2
|
4月前
|
Kubernetes 负载均衡 Cloud Native
Kubernetes经典理论与核心概念解析
Kubernetes经典理论与核心概念解析
|
6月前
|
存储 编译器 C语言
【C/C++ POD 类型】深度解析C++中的POD类型:从理论基础到项目实践
【C/C++ POD 类型】深度解析C++中的POD类型:从理论基础到项目实践
511 0
|
消息中间件 域名解析 Kubernetes
Kubernetes ExternalName的使用场景例子及配置步骤
Kubernetes 的 ExternalName 是一种用于将 Kubernetes 集群中的服务映射到集群外部服务的机制。它通常用于将集群内的服务与集群外部的服务进行互联,比如连接到外部数据库、消息队列或者其他无法直接暴露在集群中的服务。 以下是一个使用场景的例子:假设你的应用程序需要连接到一个名为 "external-service.example.com" 的外部服务,该服务可能是在 Kubernetes 集群之外运行的数据库或其他类型的服务。你可以使用 ExternalName 来将该外部服务暴露给 Kubernetes 集群内的其他服务。 下面是配置步骤: 1. 创建一个 `
1343 0
|
存储 Kubernetes 监控
2. Kubernetes的基本概念和术语(1)
2. Kubernetes的基本概念和术语(1)
2. Kubernetes的基本概念和术语(1)
|
存储 消息中间件 Kubernetes
2. Kubernetes的基本概念和术语(2)
2. Kubernetes的基本概念和术语(2)
2. Kubernetes的基本概念和术语(2)
|
存储 Kubernetes 应用服务中间件
2. Kubernetes的基本概念和术语(3)
2. Kubernetes的基本概念和术语(3)
2. Kubernetes的基本概念和术语(3)
|
XML JSON Kubernetes
【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)(一)
【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)(一)
275 0
|
JSON Kubernetes Cloud Native
【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)(二)
【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)(二)
328 0
【云原生Kubernetes系列第七篇】一文掌握k8s之YAML文件(少攀谈,多沉潜,清醒而独立)(二)
|
弹性计算 Kubernetes 监控
Kubernetes自测题(一)-基础部分
什么是 Kubernetes ? Kubernetes 是一个基于容器技术的分布式开源平台,主要功能是生产环境中的容器编排。