Pod
pod是一个逻辑单位,由多个容器组合,是kubernetes原子调度单位,Pod 的共享上下文包括一组 Linux 名字空间、控制组(cgroup)和可能一些其他的隔离方面
- Pause容器
kubernetes 为了解决网络共享问题引入了该容器,Pause容器又叫Infra container,是一个非常小的镜像,大概 100~200KB 左右,源代码,是一个汇编语言写的、永远处于“暂停”状态的容器。由于有了这样一个 Infra container 之后,其他所有容器都会通过 Join Namespace 的方式加入到 Infra container 的 Network Namespace 中 - Volume
Volume是Pod中能够被多个容器访问的共享目录。Volume与Pod的生命周期相同,但与容器的生命周期不相关,当容器终止或者重启时,Volume中的数据也不丢失
注:
业务容器共享Pause容器的网络栈和Volume挂载卷,因此它们之间的通信和数据交换更为高效
- Init容器(Init Container)
Init容器运行前必须先运行完成的一个或多个Init容器,Init容器会在启动应用容器之前运行并完成。 - 应用容器(App Container)
应用容器在 pod 中,在 初始化容器 启动完毕后才开始启动
注:
一个pod中的容器应该为紧密相关的容器,例如
文件交换、localhost或者本地的Socket通信、非常频繁的RPC调用、需要共享某些Linux Namespace等等
网友评论