k8s核心资源Pod介绍——Pod是什么?

2023-10-27 / 0 评论 / 154 阅读
温馨提示:
本文最后更新于 2023-10-27,已超过半年没有更新,若内容或图片失效,请留言反馈。

在K8s中,pod是K8s体系中最小调度单元,我们通过定义一个Pod的资源,然后在Pod里面运行容器,容器需要指定一个镜像,这样就可以用来运行具体的服务。
Pod(就像在鲸鱼荚或者豌豆荚中)是一组(一个或多个) 容器; 这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod 中的内容总是并置(colocated)的并且一同调度,在共享的上下文中运行。 Pod 所建模的是特定于应用的 “逻辑主机”,其中包含一个或多个应用容器, 这些容器相对紧密地耦合在一起。 在非云环境中,在相同的物理机或虚拟机上运行的应用类似于在同一逻辑主机上运行的云应用。

如果我们把pod看成是一个“豌豆荚”,豆子看作容器(dokcer/container),里面可有一个豆子,也可能很多“豆子”(容器)。豆子多少取决于资源的分配,在K8s中我们可以过过pod的yaml文件来安排。
k8s核心资源Pod介绍——Pod是什么?

一个Pod封装一个容器(也可以封装多个容器),Pod里的容器共享存储、网络等。也就是说,应该把整个pod看作虚拟机,然后每个容器相当于运行在虚拟机的进程。

关于Pod的,K8s的官方描述文档:https://kubernetes.io/docs/concepts/workloads/pods/

pod的作用:
1、Pod是由一组紧耦合的容器组成的容器组,当然目前最流行的就是Docker、containerd、podman容器,Pod就可以作为1或者多个容器的载体。

2、Pod中的所用容器会被一致调度、同节点部署,并且在一个“共享环境”中运行。Pod想成一个车:车里面好多座位,每个座位都坐不同的人,每个座位想成是一个容器,这里的“共享环境”包括以下几点:
1)所有容器共享一个IP地址和端口空间,意味着容器之间可以通过localhost高效访问,不能有端口冲突
2)允许容器之间共享存储卷,通过文件系统交互信息

3、有些容器需要紧密联系,需要一起工作。Pod提供了比容器更高层次的抽象, Pod中的所有容器使用同一个网络的namespace,即相同的IP地址和Port空间。它们可以直接用localhost通信。同样的,这些容器可以共享存储,当K8s挂载Volume到Pod上,本质上是将volume挂载到Pod中的每一个容器里。

评论一下?

OωO
取消