Kubernetes Pod 是什么?
Kubernetes Pod 是 Kubernetes 应用的基本执行单元。可以把它想象成应用程序运行的独特环境,封装了一个或多个应用容器以及共享的存储/网络资源。Kubernetes 有很多封装服务、端点和其他实体的概念,但归根结底一个 Pod 是你的代码运行的地方。
Kubernetes Pod 和容器的区别
从概念上来说,Pod 可以和 Docker Compose 中的容器进行比较。在与 Docker Compose 相比时,Pod 在 Kubernetes 中扮演的角色与容器在 Docker Compose 中扮演的角色相同,但 Pod 实际上是一种对一个或多个容器的抽象,具有相关的网络和存储配置。Pod 可以包含几个容器,但是最佳实践是有一个运行应用代码的主容器,以及 0 个或多个提供应用额外功能(如日志、监控和网络)的支持容器,这种方式称为 Sidecar,这些支持容器称为 sidecar 容器。
Kubernetes Pod 和节点的区别
节点是 Kubernetes 中的工作器,Pod 就是在节点上运行。节点可以是虚拟的,例如 AWS EC2 实例,或者物理的计算机服务器。Pod 被分配到节点上,并在这些节点上运行,消耗节点提供给集群的容量。Pod 并非明确绑定到节点,它们是由 Kubernetes 控制平面分配的,如果有必要可以从一个节点移动到另一个节点。
Kubernetes Pod 和集群的区别
集群本质上是一组提供容量的节点、一组运行应用程序的 Pod 以及其他配置(如服务或入口控制器),所有这些都由 Kubernetes 控制平面管理。从概念上讲,Pod 可以被视为 Kubernetes 运行应用程序的方式。
Kubernetes Pod 的工作方式
Pod 是在主容器(运行我们代码的容器)之上的一层抽象,以及零个或多个支持或 sidecar 容器。除了容器之外,P