原标题:pod、集群和容器有什么区别?
在云原生生态系统催生的一系列新术语中,容器化和编排是核心。容器把你的应用程序或服务,以及它运行需要的所有东西都放在里面。容器编排器确保系统的所有组件在正确的时间在正确的位置工作,并在不再需要时停止。
至于pod、容器、集群,我们需要在这三个基本术语之间划清界限:pod、集群和容器有什么区别?
什么是容器?软件容器是一种打包应用程序或服务以及它运行所需一切的一种手段,与环境无关。“容器的定义是一个包,其中有要执行的程序及其所有依赖关系,如代码、运行时、系统库等,所有这些都绑定在一个盒子中。”
更深地理解容器和编排之间的关系也是很有用的。如果没有前者,后者就不会存在:运行容器化的应用程序,尤其是在生产环境中,首先需要进行编排。如果不运行容器化的应用程序,则不需要进行全面的Kubernetes部署。
“当Docker容器最早流行时,它们主要运行在一台计算机上——开发者的笔记本电脑上。但是,当人们清楚地认识到可以用容器代替虚拟机来运行应用程序时,它们开始在许多计算机上运行,因此就产生了管理许多容器的需要。”
Kubernetes如何处理容器?至于像Kubernetes这样的容器编排工具,其作用是使你能够自动化、管理和调度由单个容器定义的应用程序,这是一个必要的“操纵杆”,尤其是在微服务架构中,你可能会运行几十个或数百个,甚至数千个临时容器作为完整应用程序的一部分。
对于许多团队来说,手动完成这项工作并不可取。编排是使容器化应用程序的运行和扩展具有可持续性的关键。
容器化导致了容器编排,运行Kubernetes意味着一些组织开始运行更多的容器化工作负载,因为他们已经准备好了基础设施。总的好处是什么?节省时间——加快产品和服务的上市时间——是许多高管追求的一个好处。“Kubernetes平台允许企业利用众多云提供商的服务,并根据需要快速增长,而无需重新设计基础架构。这节省了大量部署周期,并大大提高了尽快提供新服务的能力。此外,工作负载的可移植性和安全性也是企业希望从Kubernetes中获得的最大好处。”
什么是pod?在Kubernetes中部署pod时,它们基本上是单个容器的包装或房子。从某种意义上说,容器的容器。
“pod是一个逻辑包装实体,用于在K8s集群上执行容器。可以把每个pod想象成一个透明的包装,为容器提供一个插槽。”
pod是Kubernetes最小的可部署单位。“pod是一组一个或多个容器,具有共享的存储/网络资源,以及如何运行容器的规范。”因此,最简单地说,pod是一个容器如何在Kubernetes中“用起来”的机制。
什么是集群?集群是Kubernetes基本架构的核心:如果运行Kubernetes,那么至少运行一个集群(没有集群就没有Kubernetes部署)。这个集群有点像应用程序的中枢神经系统。或者,它有点像一个主板或电路板为你的应用程序供电:“集群是一个电路板,它提供电路,以用户定义的编排方式运行所有的pod(其中包含容器实例)。”
所以它们有一种共生关系:容器→pod→集群。
——容器在pod中逻辑化地运行(尽管它也使用容器运行时);
——集群上运行一组相关或无关的pod。pod是集群上的一个复制单元;
——一个集群可以包含许多相关或不相关的pod,它们分组在称为命名空间的逻辑边界里。
还有另一个关键概念,节点,它存在于pod和集群之间。在Kubernetes中,节点本质上是托管pod的机器,无论是物理的还是虚拟的。
这种关系也反过来也说得通,运行一个没有容器或容纳容器的pod的Kubernetes集群没有多大意义。它们是不同的东西,但它们彼此依赖。
https://enterprisersproject.com/article/2020/9/pod-cluster-container-what-is-difference
责任编辑: