一、Pod 的概念
kubernetes并不直接管理容器,它的最小管理单元是Pod。Pod是一个或多个容器的组合,这些容器贡献存储,网络,命名空间以及运行规范。在Pod中所有容器被统一安排和调度,在共享上下文中运行(共享上下文是一种基于线程的内存位置)。Podshi他们的逻辑主机,包含多个容器,是一组共享命名空间,IP地址和端口容器的集合。
Pod 可以简单的理解为一组、一个或多个容器,每个 Pod 还包含一个 Pause 容器,Pause 容器是 Pod 的父容器,主要负责僵尸进程的回收管理。同时,通过 Pause 容器可以使同一个 Pod里面的不同容器共享存储、网络、PID、IPC 等,容器之间可以使用 Localhost:Port 的方式相互访问,可以使用 volume 实现数据共享。根据 Docker 的构造,Pod 可以被创建为一组具有共享命名空卷、IP 地址和端口的容器。
Pod 有两个必须知道的特点:
网络: 每一个 Pod 都会被指派一个唯一的 Ip 地址,在 Pod 中的每一个容器共享网络命名空间,包括 Ip 地址和网络端口。在同一个 Pod 中的容器可以同 locahost 进行互相通信。当Pod中的容器需要与 Pod 外的实体进行通信时,则需要通过端口等共享的网络资源。
存储: Pod 能够被指定共享存储卷的集合,在 od 中所有的容器能够访问共享存储卷,允许这些容器共享数据。存储卷也允许在一个 pod 持久化数据,以防止其中的容器需要被重启。