03.04 一文读懂Kubernetes 的 11 个部分

随着云计算的普及,Kubernetes的应用也越来越广泛,今天小编就来为大家介绍Kubernetes 的 11 个组成部分。

一文读懂Kubernetes 的 11 个部分

1、Pod

Pod 是 Kubernetes 中最小的可互动单元。一个 Pod 可以由多个容器组成,这些容器共同部署在单个节点上形成一个单元。一个 Pod 具有一个 IP,该 IP 在其容器之间共享。

2、Node(节点)

Node 是 Kubernetes 用于部署 Pod 的虚拟机,为 Kubernetes 提供可用的集群资源用于以保持数据、运行作业、维护工作负载、创建网络路由等。

3、Label(标签)与 Annotation(注解)

Label 是 Kubernetes 及其最终用户用于过滤系统中相似资源的方式,也是资源与资源相互“访问”或关联的粘合剂。

4、Service Discovery(服务发现)

ETCD 是 Kubernetes 的“内部”数据库,Master 通过它来获取所有资源的位置。Kubernetes 还为服务提供了实际的“服务发现”——所有 Pod 使用了一个自定义的 DNS 服务器,通过解析其他服务的名称以获取其 IP 地址和端口。它在 Kubernetes 集群中无须进行设置即可使用。

5、ReplicaSet(副本集)

虽然 Pod 是一个物理性的运行任务,但通常使用单个实例是不够的。ReplicaSet是为了实现负责扩展和复制的层,这个层以副本的数量表示系统的期望状态,并在任意给定时刻保持该系统的当前状态。这也是配置自动伸缩的所在,在系统高负载时创建额外的副本,并在不再需要这些资源来支撑所运行的工作负载时进行缩容。

6、DaemonSet(守护进程集)

有时候,应用程序每个节点需要的实例不超过一个。为了从各个节点收集日志,其代理需要运行在所有节点上,但每个节点只需要一个实例。Kubernetes 的 DaemonSet 即可用于创建这样的工作负载。

7、StatefulSet(有状态集)

虽然应用程序容器本身可以是不可变的,但StatefulSet可以使用更新的版本或更健康的实例来替代,但是所有副本还是需要数据的持久化。是用于这类需要在整个生命周期内使用同一节点的应用程序的部署。此外,StatefulSets 还负责管理 PersistentVolumeClaim(Pod 上连接的磁盘)。

8、Job(任务)

为了在 Kubernetes 中实现一个迷你的无服务器环境,Job 应运而生。正如其名,Job 的工作是生成容器来完成特定的工作,并在成功完成时销毁。

9、ConfigMap(配置映射)及 Secret(机密配置)

现代应用程序的一个关键概念是无环境,并可通过注入的环境变量进行配置。应用程序应与其位置完全无关。为了在 Kubernetes 中实现这个重要的概念,就有了 ConfigMap。实际上这是一个环境变量键值列表,它们会被传递给正在运行的工作负载以确定不同的运行时行为。在同样的范畴下,Secret 与正常的配置条目类似,只是会进行加密以防类似密钥、密码、证书等敏感信息的泄漏。

10、Deployment(部署)

如果想小规模地进行构建、测试和发布,以缩短反馈周期,使用 Deployments 即可持续地部署新软件,这是一组描述特定运行工作负载新需求的元数据。在 Kubernetes 中部署软件可使用 2 个主要策略,即替换和滚动升级。

11、Storage(存储)

Kubernetes 在存储之上添加了一层抽象。工作负载可以为不同任务请求特定存储,甚至可以管理超过 Pod 生命周期的持久化。


分享到:


相關文章: