• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

k8s pod 停止流程 preStop 停止前处理 自定义 --grace-period 宽限期

官网 Termination of Pods

因为 pod 是在集群节点运行的程序,当不再需要而删除他们的时候,让他们正常终止是非常重要的。用户应该能够请求删除并知道进程何时终止,而且还能够确保删除最终完成。

当用户请求删除Pod时,系统将 TERM 信号发送到 pod 中 每个容器中的主进程,然后等待一个宽限期(grace period),超过宽限期就发送 KILL 信号强制杀死 pod。

示例流程:

  1. 用户发送命令删除Pod,默认宽限期为 30 秒

  2. API 服务器中的 Pod 设定宽限期,超过该时间 Pod 被强制删除。

  3. 在客户端命令中列出时,Pod 显示状态为“正在终止(Terminating)”

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

    1. 如果Pod中有容器定义了 preStop 钩子,则会在容器内部调用它,如果到了宽限期 preStop hook 仍然再运行,那么宽限期会再延长 2 秒

    2. 向容器发送 TERM 信号。并不代表所有 pod 中所有容器都同时收到 TERM 信号。如果容器关闭顺序很重要,那么可能每个容器都需要一个preStop hook。

  5. (与3同步)将 Pod 从 server 的 endpoinds 列表中移除。从 RC 控制器(replication controllers)的副本集中移除 ( 即副本减 1 )。缓慢关闭中的 pod 其实是不会提供服务的。

  6. 宽限期到期时,仍在 Pod 中运行的所有进程都会被 SIGKILL 杀死。

  7. Kubelet 将通过设置宽限期 0(立即删除)来完成在API服务器上删除 Pod 的操作。该 Pod 从API中消失,并且在客户端中不再可见

默认情况下,grace period 宽限期为30秒,所有删除都会在 30 秒内正常进行。该 kubectl delete 命令支持 --grace-period=<seconds> 允许用户覆盖默认值并指定自己的值的选项。0 强制值将删除 Pod。你必须指定一个额外的标志 --force  和 --grace-period=0 一起使用,以确保强制删除

更改默认宽限期 grace-period

默认宽限为 30 秒 ,但是我们的正常退出脚本 preStop ,可能需要大于30s时间运行,这时可以根据实际情况更改

yml 文件中更改:terminationGracePeriodSeconds

  • kubectl explain pods.spec.terminationGracePeriodSeconds

  • kubectl explain deployment.spec.template.spec.terminationGracePeriodSeconds

apiVersion: v1
kind: Pod
metadata:
  name: test-pod
spec:
  containers:
  - name: busy-container
    image: registry.cn-shanghai.aliyuncs.com/dzcx/busyweb:v1.2
  terminationGracePeriodSeconds: 60

delete 等命令中使用  --grace-period=60

# 默认 30 s
kubectl  delete pod busybos-for-logs-6bb77d477c-dz55m


# 指定为 60 s
kubectl  delete pod busybos-for-logs-6bb77d477c-dz55m --grace-period=60

# 强制 立刻 删除
kubectl  delete pod busybos-for-logs-6bb77d477c-dz55m --force --grace-period=0



0
0
下一篇:ueditor 1.4.3 去掉 本地保存成功 功能

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。