Pod是Kubernetes中的一个逻辑单位 ,它代表集群上正在运行的一个进程。Pod是Kubernetes集群中的一个应用实例,由一个或者多个容器组成。Pod中还可以包含数据的持久化存储、网络配置等资源。Pod支持多种容器执行环境,而Docker则是Kubernetes Pod中最常见的执行环境 ,Pods也支持其他容器引擎作为执行环境。
视频讲解如下:
下图说明了Pod的组成结构。
Kubernetes中主要有两种方式使用Pod:
- 单容器的Pod:这是最常见的使用Pod方式,即:Pod中只运行一个容器。在这种情况下,Pod封装了单个的容器,而Kubernetes通过Pod来管理这一个容器。
- 多容器的Pod:当应用程序需要多个容器一起协同工作时,Pod可以封装紧密耦合的多个容器从而满足应用程序的要求。Kubernetes的调度器会保证这些容器都运行在同一台物理主机或虚拟主机,从而达到容器之间的资源共享。由于这些容器运作在同一个宿主机上,因此可以通过localhost互相访问。除非应用程序有特别严重的耦合关系,一般情况下不推荐使用这种方式。
Kubernetes使用Pod来管理容器,具有以下的优点:
- Pod作为最小的逻辑部署单元简化了应用部署的难度,从更高层次的抽象极大方便了应用的部署和管理。
- Pod作为独立运行的服务单元,可以方便的进行部署、水平扩展和收缩、方便进行调度管理与资源的分配。
- Pod中的容器共享命名空间和网络地址,方便进行统一的资源管理与资源分配。