【转载】k8s删除一个Pod会发生什么事情?

概述

Kube-apiserver会接受到用户的删除指令,默认有30秒时间等待优雅退出,超过30秒会被标记为死亡状态,

此时Pod的状态Terminating,kubelet看到pod标记为Terminating就开始了关闭Pod的工作;

关闭流程如下:

  1. pod从service的endpoint列表中被移除;

  2. 如果该pod定义了一个停止前的钩子,其会在pod内部被调用,停止钩子一般定义了如何优雅的结束进程;

  3. 进程被发送TERM信号(kill -14);

  4. 当超过优雅退出的时间后,Pod中的所有进程都会被发送SIGKILL信号(kill -9)

详述

当删除一个 Pod 时,以下事件将会发生:

  1. 从集群中移除:Kubernetes 控制平面接收到删除操作后,将从集群中移除该 Pod 的相关配置和定义。这意味着该 Pod 将不再被调度到任何节点,并且不再受到 Kubernetes 的管理。

  2. 终止容器:Kubernetes 会向 Pod 中的容器发送 SIGTERM 信号(15号信号),请求容器进行优雅关闭。容器收到该信号后,可以执行清理操作、释放资源、保存状态等,并尽量在一定时间内正常退出。

  3. 等待终止超时:在发送 SIGTERM 信号后,Kubernetes 会等待一段时间(默认为 30 秒)来等待容器正常退出。如果容器在超时时间内仍然没有终止,Kubernetes 将发送 SIGKILL 信号(9号信号)强制终止容器。

  4. 清理资源:一旦容器终止,Kubernetes 将清理与该 Pod 相关的资源。这可能包括释放节点上的网络、存储卷、临时文件等资源,以及更新集群中的状态信息。

  5. 可能的重新调度:如果删除的 Pod 属于由 ReplicaSet、Deployment 或其他控制器管理的副本集,Kubernetes 将尝试根据副本集的定义重新调度一个新的 Pod 来替代被删除的 Pod,以确保所需的副本数维持在正常状态。

总之,删除一个 Pod 将触发一系列的操作,包括向容器发送终止信号、清理资源以及可能的重新调度。这确保了集群中的 Pods 和相关资源保持一致和可控。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值