容器的定义是一个包,其中有要执行的程序及其所有依赖关系,
如操作系统、代码、运行时、系统库等,
所有这些都绑定在一个盒子中。
运行容器化的应用程序,
尤其是在生产环境中,需要进行编排。
这样就可以实现批量管理容器
Pod是Kubernetes中的最小调度单元,
一个Pod封装一个容器(也可以封装多个容器),
Pod里的容器共享存储、网络等。
也就是说,
可以把整个pod看作虚拟机,
然后每个容器相当于运行在虚拟机的进程。
同一个pod里的所有容器都被统一安排和调度。
如下图
可以把Pod看成是一个“豌豆荚”,
里面有很多“豆子”(容器)。
一个豌豆荚里的豆子,它们吸收着共同的营养成分、肥料、水分等,
Pod和容器的关系也是一样,
Pod里面的容器共享pod的空间、资源、网络、存储等。

Pod与Kubernetes关系,下面也会提到
在Kubernetes中部署应用时,都是以pod进行调度的,
它们基本上是单个容器的包装或房子。
从某种意义上说,容器的容器。
pod是一个逻辑包装实体,用于在K8s集群上执行容器。
可以把每个pod想象成一个透明的包装,为容器提供一个插槽。
pod是Kubernetes最小的可部署单位。
pod是一组一个或多个容器,具有共享的存储/网络资源,
以及如何运行容器的规范。
因此,最简单地说,
pod是一个容器如何在Kubernetes中“用起来”的机制。
每一个Pod都会被指派一个唯一的Ip地址,
在Pod中的每一个容器共享网络命名空间,
包括Ip地址和网络端口。
在同一个Pod中的容器可以通过locahost进行互相通信。
当Pod中的容器需要与Pod外的实体进行通信时,
则需要通过端口等共享的网络资源进行通信。
在Pod中所有的容器能够访问共享存储卷,
允许这些容器共享数据。
每个Pod里运行着一个特殊的被称之为Pause的容器,
其他容器则为业务容器,这些业务容器共享Pause容器的网络栈和Volume挂载卷,
因此他们之间通信和数据交换更为高效,
在设计时我们可以充分利用这一特性将一组密切相关的服务进程放入同一个Pod中。
同一个Pod里的容器之间仅需通过localhost就能互相通信。
1、pod是k8s的最小单元,容器包含在pod中,
一个pod中有一个pause容器和若干个业务容器,
而容器是单独的一个容器,
简而言之,pod是一组容器的集合。
2、pod相当于逻辑主机,
每个pod都有自己的ip地址
3、pod内的容器共享相同的ip和端口
4、默认情况下,
每个容器的文件系统与其他容器完全隔离
Docker是容器中的代表,当Docker容器最早流行时,
它们主要运行在一台计算机上(个人电脑),
当人们清楚地认识到可以用容器代替虚拟机来运行应用程序时,
它们开始在许多计算机上运行,
因此就产生了管理许多容器的需要。
容器本身可以运行程序,为什么还需要Kubernetes作为容器编排工具?
像Kubernetes这样的容器编排工具,
其作用是使你能够自动化管理和调度由单个容器定义的应用程序,
尤其是在微服务架构中,你可能会运行几十个或数百个,
甚至数千个临时容器。
对于许多团队来说,手动完成这项工作并不可取。
因此需要对这些容器进行编排。
最简单地说,pod是一个容器如何在Kubernetes中“用起来”的机制。
在Kubernetes中部署应用时,都是以pod进行调度的,
它们基本上是单个容器的包装或房子。
从某种意义上说,容器的容器。
pod是一个逻辑包装实体,用于在K8s集群上执行容器。
可以把每个pod想象成一个透明的包装,为容器提供一个插槽。
pod是Kubernetes最小的可部署单位。
pod是一组一个或多个容器,具有共享的存储/网络资源,
以及如何运行容器的规范。
因此,最简单地说,pod是一个容器如何在Kubernetes中“用起来”的机制。
集群是Kubernetes基本架构的核心:如果运行Kubernetes,那么至少运行一个集群。
它们有一种共生关系:容器→pod→集群。
容器在pod中逻辑化地运行;
集群上运行一组相关或无关的pod。pod是集群上的一个复制单元;
一个集群可以包含许多相关或不相关的pod,
它们分组在被称为命名空间的逻辑边界里。
节点存在于pod和集群之间。在Kubernetes中,
节点本质上是托管pod的机器,
可以是物理机也可以是虚拟机