pod 是 Kubernetes 中的一个重要概念,请问如何简单易记地理解它?如果有形象的比喻更好。
摘录一下 Kubernetes初探[1]:部署你的第一个ASP.NET Core应用到k8s集群 中对 pod 的解释:
- Pod是Kubernetes集群中运行部署应用的最小单元,并且是支持多个容器的。
- 一个Pod内的容器共享同一个卷、同一个 IP、端口空间、IPC 命名空间。
- Pod对多容器的支持是Kubernetes最基础的设计理念。
ASP.NET Core 借助 K8S 玩转容器编排 中的一个解释:
Pod:用来托管应用程序实例
掌握Pod:Pod基础使用 中的解释:
Pod可以由1个或多个容器组合而成,通常对于紧耦合的两个应用,应该组合成一个整体对外提供服务,则应该将这两个打包为一个pod。属于一个Pod的多个容器应用之间相互访问只需要通过localhost即可通信,这一组容器被绑定在一个环境中。
拿编程语言来类比:
在k8s中,简单的把pod等同于container来理解也是可以的。
如果把 pod 等同于 container 来理解,那就是容器的容器
@dudu: pod更像是一个抽象层(一个OS的抽象),container对应的则是一个进程的抽象。pod支持container,但是也支持其他的部署方式。
一栋楼(Kubernetes)有很多住户(Pod)每户有数量不等的成员(Container)。
今天走路时想到的一种理解:如果容器是集装箱,那 pod 就是船舱。在 k8s 中部署的不是容器而是 pod ,pod 是 k8s 的最小部署单元,在 k8s 的眼里只有 pod 没有容器。
图中有四个Pod