Pod 可以理解为容器的直接宿主,它负责管理和协调 Pod 中的容器。在 Pod 中的所有容器都是在同一个网络命名空间和 UTS(Unix Timesharing System)命名空间下运行的,它们可以通过 localhost 直接互相通信,也可以通过共享 Volume 和进程空间(Share Process Namespace)实现进程间通信(IPC)。典型情况下,Pod 中只包含一个容器,多个容器通常意味着它们需要一起运行和工作。Pod 可以与 Volume 一起使用以在容器之间共享数据。
当 Kubernetes 调度器将 Pod 调度到节点上后,Docker 或其他容器运行时就会根据 Pod 中定义的容器启动和管理这些容器。Pod 生命周期与其中的容器的运行状态存在紧密的关联。当 Pod 中所有容器全部运行完毕时,Pod 也会终止并由 Kubernetes 清除。
有些 Pod 具有?Init 容器和?应用容器, Init 容器会在启动应用容器之前运行并完成。
此外,Pod 还提供了一些管理容器的功能,例如:
当您创建一个 Pod 对象时,您可以在其规范(spec)中定义一个或多个容器。每个容器将在 Pod 内部运行,并由 Pod 负责管理它们。
请注意,Pod 并不会对容器应用程序的内部进行健康检查或管理。通常,您需要在容器中运行自己的工具或进程监控容器的健康状况,并与 Kubernetes 的健康检查机制(如 Readiness Probe 和 Liveness Probe)进行集成,以便 Pod 系统能够正常地管理容器的运行状态。