Kubernetes登场人物总结
首先
我想学习作为管弦乐工具的Kubernetes(Kubernetes),但是这里有太多陌生的术语,让我感到非常困惑。
无论如何,其中登场的角色很多。就像漫画《海贼王》一样,登场角色非常多,只是一眼看过去并不清楚。对于那些看《龙珠》长大的一代来说,这是一种痛苦。
我希望能逐个整理清楚。
特点
Kubernetes可以自动化构建、配置和运维由各种应用程序、中间件、存储等组成的系统。它还能进行自动扩展和健康监测。
在众多编排工具中,Kubernetes专门针对容器进行了优化。它能够明确描述容器之间的关系,并且轻松进行服务发现。
可以根据容器之间的关系来管理基于容器何时在哪里运行的调度。
如果使用Terraform等配置工具,需要根据每个环境进行相应的编写。
而对于Kubernetes来说,它可以吸收环境的差异。
虽然编排是复杂的,但对于Kubernetes来说,它创造了Kubernetes的“术语”以抽象和简化这种复杂性。(更确切地说是角色)
一旦理解了“术语”,Kubernetes被认为是更易理解的。
节点
指的是VM或物理服务器。服务器会被分配一个IP地址。
群聚
节点的集合。
Kubernetes的守护程序负责管理集群和容器的执行情况,以及为正在运行的Kubernetes环境进行协调。
豌豆
从用户的角度来看,Pod类似于一个虚拟机(VM),而容器更接近于在该虚拟机中运行的进程。
Pod是Kubernetes部署的最小单位。
Pod是一个或多个集群的组合体。节点始终被展开。
在Pod内指定的容器组将同时被部署。
Pod中的容器共享IP和端口。
因此,无法在同一个Pod中放置绑定到相同端口的多个容器。
此外,Pod无法管理除了其自身信息之外的内容。要控制多个Pod,需要相应的资源。这个问题可以通过称为控制器的功能来解决。
标签
根据注册的定义,将自动进行初始化和部署。
通常会自动分配随机名称。
可以为资源分配任意字符串。类似于标签。标签包括名称和值。
在进行某项工作时,只需要指定特定的名称和值,就可以对具有相应标签的所有资源进行批量操作。
服务
由多个Pod组成的集合体。服务彼此发现的机制。
当在Kubernetes中创建服务时,
Kubernetes会在其管理的DNS服务器上创建必要的记录。
所创建的名称将在Pod之间使用。
由於有幾種服務類型,因此我們將進行介紹。
這主要用於處理Kubernetes內部的訪問。
入口
将对Pod的访问通过http代理进行转发。
将与Service相关联的通信内容代理到Service上。
音量
可以指定数据存储区域。可以将外部存储作为卷挂载到容器中。
在分配节点的情况下,应使用 emptyDir Volume 来分配空间。
Pod 的容器将在同一节点上进行部署。在 Volume 中写入的数据可以在 Pod 之间共享。
然而,如果删除Pod,则会同时删除emptyDir。为了避免这种情况,可以选择使用NFS或云存储(PersistentVolume)。
配置映射/密钥
将应用程序的设置写入图像本身,每次更改设置都需要创建新的图像。为了避免这种情况,将各种设置和部署到容器中的程序分离。
在Kubernetes中使用ConfigMap/Secret。
水平扩展部署
每个 Pod 不意识到状态作为其特征。
Pod 构成为完全克隆。
复制集合
用于控制Pod的规模。
根据在模板项(template)中定义的Pod的定义,创建并启动与replicas项指定的数量相同的Pod。
由于还有更多的角色要登场,因此稍后将进行编辑。