• 回答 (10)
  • 关注 (1)
  • 查看 (2984)

总听人说kubernetes,k8s,但是我小白不懂啊!那位大神能简单的讲解一下,让我这种小白都能明白的问题!

742512027cdb742512027cdb提问于
三进制本科在读回答于
推荐

用简单的一张图来回答吧:

删除

首先我们需要明白图中几个意思,从内向外看:

container

包含在Pod下,可以是docker镜像。

Pods

在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。比如一个或一组容器。

Labels

Labels是用于区分Pod、Service、Replication Controller的key/value键值对,仅使用在Pod、Service、 Replication Controller之间的关系识别,但对这些单元本身进行操作时得使用name标签。

Node

节点是是物理或者虚拟机器,作为Kubernetes worker,通常称为Minion。

Services

Service 是后端真实服务的抽象,一个 Service 可以代表多个相同的后端服务,Services是Kubernetes最外围的单元,通过虚拟一个访问IP及服务端口,可以访问我们定义好的Pod资源。

Kubernetes Master

集群拥有一个Kubernetes Master。Kubernetes Master提供集群的独特视角,并且拥有一系列组件,比如Kubernetes API Server。API Server提供可以用来和集群交互的REST端点。master节点包括用来创建和复制Pod的Replication Controller。

举例

没有容器编排

我们按照水闸来举例,在没有容器编排前,我们先做下定义,container=docker镜像=一个水库,先前没有容器编排前,是这样子的。ABC三个城市(三个用户)共用一个水库(container),经常遇到的问题是这个水库流量达不到ABC三个城市的要求,供给A,B没水喝,供给B,C没水喝,夏天用水较大时,水库不堪重负,那么,如何解决这个问题呢?我能不能设置设置一个调度站呢?

有容器编排

那么,调度站就是kubernetes,调度站如何解决这个问题?我们向下看

现在,我们把水库做下划分,把多个水库按地区划分出来,这个地区可能是城市A,城市A旁边有两个水库,那么我就把这个两个水库划分给城市A,这个地区划分我们就可以成为pod,一个pod可以包含多个水库(container)。

水库划分了,接下来就是定义标签了,所谓标签就是Labels,标签标示这个区域所在的位置所处的水资源的情况,比如含盐量,矿物量等。

接下来我们看看node,node直译是节点,我们可以理解为省,省里面包含了多少区域(城市),一个城市的含水量(水库)。

最后是Services,我们可以理解为水库调度管理员,他直接对接的是缺水的城市(用户),对用户来说,server后面是无感知的,我要多少水你就给我想办法,调度多少水资源,而且你要想到kubernetes是有魔法的,可以无限复制水库,区域水库等,所以对城市来说(用户)永远不会缺水。这就是kubernetes的魅力和优势。

以上是本人的理解,可能稍有偏差,希望不对的地方大家评论指出,谢谢!

回答过的其他问题

如何从零开始搭建一款小程序?

三进制本科在读
导语:本文章的主要目的就是针对两类人: 一类是没有做过小程序开发,但是想了解小程序整个开发过程及环境和开发中需要注意哪些问题的人,你适合读本文的入门篇,可以帮你节省至少几天的时间。 另一类人就是你写过小程序,但是想对小程序更深入的了解,并想对你的小程序进行一定程度上的优化,那你更...... 展开详请

React.js:将字符串转换为对象

三进制本科在读
令人奇怪的是,服务器将对象双重编码为​​JSON(编码内部对象然后编码整个事物)。 理想情况下,你已经修复了服务器端,因为他们正在做的事情没有意义,因为JSON支持嵌套对象就好了。 如果必须在客户端上解决问题,则使用JSON.parse将字符串转换为对象。 const att...... 展开详请

如何使用python删除文件夹中几个* .txt文件的前7行?

三进制本科在读
已采纳
您可以使用Python的OS模块从您的文件夹中获取所有* .txt文件的名称。然后,您可以遍历此名称,读取每个文件中的所有行,并使用您要保留的行覆盖该文件: from os import listdir, path path_str = '.' # your directo...... 展开详请

NPM安装错误:解析'... nt-webpack-plugin'附近的JSON输入意外结束:“0”?

三进制本科在读
npm cache clean --force 然后 npm install -g @angular/cli 为我工作... 展开详请

JavaScript中的扩展语法出现意外行为?

三进制本科在读
已采纳
在第一个代码中,您将传播一个包含一个项目的数组,即第零个索引处的字符串: console.log({ ...["hello"] }); 一切都如预期。但是在第二个代码中,你.map首先调用数组,然后传播提供给函数的第一个参数.map - 传播的项不是数组...... 展开详请

xpath extract / text()使用scrapy shell返回空?

三进制本科在读
第一个xpath表达式返回一个Elements列表。你将获得此列表中的第一个项目,即单个<td>元素。 第二个xpath表达式返回相同<td>Elements 的子文本节点列表。你得到的拳头孩子这是一个单一空间:之间的一个<td class="player-name">和<hr...... 展开详请

关于作者

所属标签

扫码关注云+社区

领取腾讯云代金券