docker - 终止 Pod 时,kubelet 是否并行停止容器?
问题描述
据我所知,docker stop
即使一次应用多个容器,也会一个接一个地停止容器。那么kubelet
行为是这样的吗?
解决方案
Pod生命周期页面上完美描述了 Pod 终止
用户发送命令删除 Pod,默认宽限期(30 秒)
API 服务器中的 Pod 会根据 Pod 被视为“死亡”的时间以及宽限期进行更新。
Pod 在客户端命令中列出时显示为“Terminating”
(与 3 同时)当 Kubelet 看到一个 Pod 被标记为终止,因为 2 中的时间已经设置,它开始 Pod 关闭过程。
如果 Pod 的容器之一定义了 preStop 挂钩,则会在容器内部调用它。如果在宽限期到期后 preStop 挂钩仍在运行,则使用一个小的(2 秒)延长宽限期调用第 2 步。
容器被发送 TERM 信号。请注意,并非 Pod 中的所有容器都会同时收到 TERM 信号,并且如果它们关闭的顺序很重要,则每个容器都可能需要一个 preStop 钩子。
(与 3 同时) Pod 从服务的端点列表中删除,并且不再被视为复制控制器正在运行的 Pod 集的一部分。缓慢关闭的 Pod 无法继续为流量提供服务,因为负载均衡器(如服务代理)将它们从其轮换中移除。
- 当宽限期到期时,任何仍在 Pod 中运行的进程都会被 SIGKILL 杀死。
- Kubelet 将通过设置宽限期 0(立即删除)完成 API 服务器上 Pod 的删除。Pod 从 API 中消失,不再从客户端可见。
推荐阅读
- r - 使用 gganimate 的动画图
- ios - 如何实现双击以获取更多信息等进一步操作?
- c++ - 为什么这段代码会触发一定位数的断点?
- arduino - AT+UHTTPC 命令中的变量
- javascript - 是否可以使用 HOC 将字符串数组作为参数传递?
- angular - 函数在第二次调用时被记录
- javascript - 更改 javascript html,使用 jquery css
- ios - Swift 5.1 Opaque Result Types 如何与旧操作系统(例如 iOS 12)交互
- reactjs - 事件处理程序未执行计算
- wordpress - 如何在高级自定义字段插件中使用用户字段类型显示用户名