1、Pod基本概念
- Pod 是 k8s 系统中可以创建和管理的最小单元
- Pod 是由一个或多个 container (容器)组成
- 一个pod中容器共享网络命名空间
- pod是短暂的
- 每一个 Pod 都有一个特殊的被称为”根容器“的 Pause容器
(1)Pod vs 应用
每个 Pod 都是应用的一个实例,有专用的 IP
(2)Pod vs 容器
一个 Pod 可以有多个容器,彼此间共享网络和存储资源,每个 Pod 中有一个 Pause 容器保存所有的容器状态, 通过管理 pause 容器,达到管理 pod 中所有容器的效果
(3)Pod vs 节点
同一个 Pod 中的容器总会被调度到相同 Node 节点,不同节点间 Pod 的通信基于虚拟二层网络技术实现
(4)Pod vs Pod
普通的 Pod 和静态 Pod
2、Pod 特性
(1)资源共享
一个 Pod 里的多个容器可以共享存储和网络,可以看作一个逻辑的主机。共享的如namespace,cgroups 或者其他的隔离资源。
多个容器共享同一 network namespace,由此在一个 Pod 里的多个容器共享 Pod 的 IP 和端口 namespace,所以一个 Pod 内的多个容器之间可以通过 localhost 来进行通信,所需要注意的是不同容器要注意不要有端口冲突即可。不同的 Pod 有不同的 IP,不同 Pod 内的多个容器之前通信,不可以使用 IPC(如果没有特殊指定的话)通信,通常情况下使用 Pod的 IP 进行通信。
一个 Pod 里的多个容器可以共享存储卷,这个存储卷会被定义为 Pod 的一部分,并且可以挂载到该 Pod 里的所有容器的文件系统上。
(2)生命周期短暂
Pod 属于生命周期比较短暂的组件,比如,当 Pod 所在节点发生故障,那么该节点上的 Pod会被调度到其他节点,但需要注意的是,被重新调度的 Pod 是一个全新的 Pod,跟之前的Pod 没有半毛钱关系。
(3)平坦的网络
K8s 集群中的所有 Pod 都在同一个共享网络地址空间中,也就是说每个 Pod 都可以通过其他 Pod 的 IP 地址来实现访问。
3、Pod存在的意义
(1)、创建容器使用docker,一个docker对应一个容器,一个容器有进程,一个容器运行一个应用程序。
(2)、Pod是多进程设计,运行多个应用程序
* 一个Pod有多个容器,一个容器里面运行一个应用程序
(3)、Pod存在是为了亲密性应用
* 俩个应用之间进行交互
* 网络之间的调用
* 俩个应用需要频繁调用
4、Pod的实现机制
(1)、共享网络
通过Pause容器,把其他的业务容器加入到Pause容器里面,让所有业务容器在同一个名称空间中,可以实现网络共享

(2)、共享存储:
引入数据卷的概念Volumu,使用数据卷进行持久化存储
5、镜像拉取策略