登录 / 注册 Account

容器

什么是 Kubernetes pod (容器集)?

Jump to section

如何理解 k8s pod?

Kubernetes 容器集是一个或多个 Linux® 容器的集合,也是 Kubernetes 应用的最小单位。任何一个的容器集可以由多个紧密耦合的容器组成(高级用例),也可以由单个容器组成(更常见的用例)。将容器分组为 Kubernetes 容器集,能够提高资源共享的智能性,具体请见下文。

k8s pod 能带来什么优势?

Kubernetes 系统中,同一容器集中的容器将共享相同的计算资源。这些计算资源在 Kubernetes 中汇集在一起,形成若干集群,而这些集群可以提供功能更强大、智能化程度更高的分布式系统,用于执行相应的应用。从容器到容器集,从节点到集群,理解 Kubernetes 的各个部分最初可能会有点难度,但为了理解 Kubernetes 容器集的优势,我们将最为重要的部分作如下分解:

硬件单元

节点:Kubernetes 中最小的计算硬件单元。为方便起见,不妨将其视为一台单独的计算机。

集群:节点的集合。这些节点被分组在一起,以提供智能化的资源共享和平衡。

软件单元

Linux 容器:一个或多个进程的集合(包括运行所需的所有文件),可在计算机之间进行移植。

Kubernetes 容器集:一个或多个 Linux 容器的集合,它们被打包在一起,通过集群管理来最大程度发挥资源共享的优势。

实际上,单个硬件在 Kubernetes 中表示为一个节点。多个这样的节点被分组为相应的集群,从而可根据需要来分配算力。在这些集群上面运行的是容器集,它可以确保其中紧密耦合的容器在同一集群上一起运行。

为什么需要 k8s pod?

容器集与集群之间的关系决定了 Kubernetes 不会直接运行容器,而是运行容器集以确保其中的每个容器都共享相同的资源和本地网络。通过以这种方式对容器进行分组,可以让它们如同共享相同的物理硬件一样彼此通信,但同时仍保持一定程度的隔离。

正是有了这种将容器分组为容器集的方式,一项广为人知的 Kubernetes 功能才得以实现,那就是"复制"功能。将容器分组为容器集后,Kubernetes 可以根据需要使用复制控制器来横向扩展应用。实际上,这意味着如果单个容器集过载,Kubernetes 可自动复制该容器集并将其部署到集群中。除了在高负荷期间确保各项功能状况良好外,Kubernetes 容器集还经常被连续复制,以便为系统提供抗故障能力。

什么是 Kubernetes 模式?

Kubernetes 系统的核心优势是能最大程度发挥可复用元素(例如容器集)的作用。要想发现 Kubernetes 在生产环境中的最佳用例,可能需要数年的反复试验,而在这个需要快速部署云原生应用的时代,大多数企业无法等待这么久的时间。

但是,由于 Kubernetes 建立在开放标准的基础之上,因此通过早期采用者的反复试验,人们早已熟知成功(和失败)的模式。这些模式提供了可复制的设计,许多企业可藉此来加快其早期采用的速度。

Kubernetes 模式:用于设计云原生应用的可复用元素一书(作者:Bilgin Ibryam 和 Roland Huß,出版商:O'Reilly)详细介绍了用于在 Kubernetes 上设计和实现云原生应用的常见可复用元素、模式、原理及相关实践。

 

Kubernetes——从“容”应对,"云"程万里