Kubernetes 关键组件和概念(二)
序
上一篇我们介绍了 k8s 的基本架构,我们在这篇文章将介绍 Kubernetes
关键组件和概念。
还是先来一张图:
根据上图我们分别对Deployment
、ReplicaSet
、Pod
详细的介绍,其他的几个在上一篇也做了介绍:
Deployment
Deployment
是 Kubernetes
中的资源对象,为应用程序提供声明性更新。部署允许你描述应用程序的生命周期。也就是说他的主要作用就是管理和控制 Pod 和 ReplicaSet
,监控它们运行在用户所期望的状态中。例如应用程序使用哪些镜像像、应该有的 Pod 数量以及更新它们的方式。
ReplicaSet
ReplicaSet
是一个运行 Pod
的多个实例并保持指定的 Pod数量不变
的进程。目的就是在任何时间内维持集群中运行的指定数量的 Pod 实例,以防止用户在 Pod 发生故障或无法访问时失去对其应用程序的访问权限,如果监控到某一个Pod不能继续服务的时候,他会确保我们的应用程序Pod
总体服务数量保持在我们期望的数量,然后再重新启动一个Pod
。
这里说一下
Replication Controller
与ReplicaSet
,Replication Controller
是一个较老的版本,后面被新版本ReplicaSet
取代,不过他们的作用是类似的。
我们在实时情况下,通常不会手动创建或管理
ReplicaSet
甚至Pod
, 我们会使用Deployment
的资源类型在Kubernetes
中部署 Pod。该Deployment
会在后台自动为我们创建一个ReplicaSet
,然后该ReplicaSet
负责创建和管理Deployment
文件中提到的所需数量的 Pod 和 Pod 副本。
Pod
Pod
是 Kubernetes
的最小的构建块或者说最小的部署单元。Pod 包含一组一个或多个容器。一般来说,每个Pod有一个容器。Pod 封装了应用程序容器、存储资源、唯一的网络 ID 以及有关如何运行容器的其他配置。如下图:
当应用程序通过 ReplicaSet
水平扩展时,Pod 就会被复制。每个 Pod 会运行相同的容器代码。
我们在接触k8s的时候经常会听到Service
、Volumes
、namespace
那么这几个的作用又是什么呢,我们继续向下看:
Service
在 Kubernetes 中,Service是一个实体,代表一组运行应用程序或功能组件的 Pod。该Service保存访问策略,并负责对传入请求强制执行这些策略
对于Service的需求源于 Kubernetes 中 pod 的生命周期很短,可以随时更换。Kubernetes 保证给定 pod 和副本的可用性,但不保证单个 pod 的活跃性,比如一组后端 Pod 为群集内的其他前端 Pod 提供功能,前端如何找到并跟踪要连接的 IP 地址呢?这就需要它们连接到Service,该Service将它们中继到相关的当前正在运行的 Pod。
该Service分配一个虚拟 IP 地址,称为 clusterIP,该地址将一直存在,直到被明确销毁为止。该Service充当组件或应用程序之间通信的可靠端点。
对于 Kubernetes 本机应用程序,使用服务的另一种方法是直接通过 Kubernetes API Server 发出请求。API Server 自动公开并维护运行 Pod 的端点。
Volume
类似于 Docker 中的容器Volume,但 Kubernetes Volume适用于整个 Pod,并挂载在 Pod 中的所有容器上。Kubernetes 确保数据在容器重新启动时得以保留。仅当 pod 被破坏时,该 Volume 才会被删除。此外,一个 Pod 可以关联多个Volume(可能是不同类型的)。
Volume 是 Pod 的一个组件,Volume 是在 Pod 规范中创建的,不能单独删除。
Namespace
namespace
是一种将集群组织成虚拟子集群的方法,当不同的团队或项目共享 Kubernetes 集群时就需要用到namespace
。集群内支持任意数量的namespace
,每个namespace
在逻辑上彼此分离,能够相互通信,但是不能相互嵌套。
Kubernetes
中的任何资源都存在于default
这个namespace
或由集群操作员创建的namespace
中。
总结
这篇文章主要介绍了k8s里面一些重要概念,Deployment
、ReplicaSet
、Pod
以及Service
、Volumes
、namespace
,当然还有很多的一些抽象概念,比如Ingress
等,总之k8s里面一堆的东西,一时半会儿也是理解不完的,这个需要长久的去学习深挖,这里就不过多的去一一介绍了,接下来会直接去介绍怎么使用k8s以及使用k8s的一些问题。
转载:风向阅读 - Kubernetes 系列:Kubernetes 关键组件和概念(二)
地址:https://www.aiweimeng.top/archives/26.html