终止pod时,kubelet是否会并行停止容器?

时间:2019-12-29 12:23:12

标签: docker kubernetes

据我所知,docker stop一次停止一个容器,即使一次将多个容器应用于该容器也是如此。 kubelet会表现得这样吗?

1 个答案:

答案 0 :(得分:0)

POD lifecycle page

上详细描述了Pod终止
  1. 用户发送命令删除Pod,默认宽限期为30秒

  2. API服务器中的Pod随时间更新,超过该时间Pod被视为“死亡”以及宽限期。

  3. Pod在客户端命令中列出时显示为“正在终止”

  4. (与3同步)当Kubelet看到由于设置了2中的时间而将Pod标记为终止时,它将开始Pod关闭过程。

    1. 如果Pod的一个容器定义了preStop挂钩,则会在容器内部调用该挂钩。如果宽限期到期后preStop挂钩仍在运行,则以较小的(2秒)扩展宽限期调用步骤2。

    2. 向容器发送了TERM信号。请注意,并非Pod中的所有容器都会同时收到TERM信号,如果它们关闭的顺序很重要,则每个容器都可能需要一个preStop挂钩。

  5. (与3相同),Pod已从端点列表中删除以进行服务,并且不再视为复制控制器正在运行的Pod集合的一部分。缓慢关闭的Pod无法继续充当流量,因为负载均衡器(如服务代理)会将其从轮换中移除。

  6. 宽限期到期后,使用SIGKILL杀死Pod中仍在运行的所有进程。
  7. Kubelet将通过设置宽限期0(立即删除)来完成在API服务器上删除Pod的操作。该Pod从API中消失了,并且在客户端中不再可见。