![](https://csdnimg.cn/release/download_crawler_static/87361195/bg6.jpg)
序页面
pod 是什么?
k8s 并不直接处理容器,而是使用多个容器共存的概念,这组容器就叫做 pod。pod 是 k8s 中可以创建和管理的最小单
元,是创建或部署的最小资源对象,其他的资源对象都是用来支撑 pod 对象功能的,比如,pod 控制器就是用来管理 pod
对象的,service 或者 imgress 资源对象是用来暴露 pod 引用对象的,persistentvolume 资源是用来为 pod 提供存储等等,
简而言之,k8s 不会直接处理容器,而是 pod,pod 才是 k8s 中可以创建和管理的最小单元,也是基本单元。
pod 的原理是什么?
在微服务的概念中,一般一个容器会被设计为运行单一的进程,这样,由于不能将多个进程聚集在同一个单独的容器
中,所以需要一种更高级的结构将容器绑定在一起,并将它们作为一个单元进行管理,这就是 k8s 中 pod 的背后原理。
pod 有什么特点?
1、每个 pod 其实可以看做是一个独立的逻辑机器,k8s 会为每个 pod 分配一个唯一的 IP 地址,所以每个 pod 都拥有自
己的 IP 地址、主机名、进程等等;
2、一个 pod 可以包含 1 个或多个容器,,1 个 pod 只可能运行在单个节点上, pod 可能随时挂掉也就是说 pod 的声明
周期是短暂的不确定的;
3、每一个 pod 都有一个"根容器",pause 容器,也称 info 容器,pause 容器对应的镜像属于 k8s 平台的一部分,除了 pause
容器,每个 pod 还包含一个或多个跑业务相关组件的应用容器;
4、一个 pod 中的容器共享 network 命名空间;
5、一个 pod 里的多个容器共享 pod IP,这就意味着 1 个 pod 里面的多个容器的进程所占用的端口不能相同,否则在这
个 pod 里面就会产生端口冲突;既然每个 pod 都有自己的 IP 和端口空间,那么对不同的两个 pod 来说就不可能存在端
口冲突;
6、应该将应用程序组织到多个 pod 中,而每个 pod 只包含紧密相关的组件或进程;
7、pod 是 k8s 中扩容、缩容的基本单位,也就是说 k8s 中扩容缩容是针对 pod 而言而非容器。
pause 根容器作用是什么?
每个 pod 里都有一个根容器,它的主要作用是为了为业务容器提供 Linux 命名空间,共享基础:包括 pid、icp、net 等,
以及启动 init 进程,并收割僵尸进程;这些业务容器共享 pause 容器的网络命名空间和 volume 挂载卷,当 pod 被创
建时,pod 首先会创建 pause 容器,从而把其他业务容器加入 pause 容器,从而让所有业务容器都在同一个命名空间中,
这样可以就可以实现网络共享。pod 还可以共享存储,在 pod 级别引入数据卷 volume,业务容器都可以挂载这个数据
卷从而实现持久化存储。
pod 的重启策略有哪些?
pod 重启容器策略是指针对 pod 内所有容器的重启策略,不是重启 pod,其可以通过 restartPolicy 字段配置 pod 重启容
器的策略,如下:
Always: 当容器终止退出后,总是重启容器,默认策略就是 Always。