关于Kubernetes-v1.23.6-pod-生命周期-postStart-preStop-terminationGracePeriodSeconds-选项-的说明
Posted on 2023-09-11 20:45 520_1351 阅读(66) 评论(0) 编辑 收藏 举报我们在一个pod的yaml配置文件中,有时会看到,terminationGracePeriodSeconds 选项,与containers:同级,一般可以放于spec:下面即可
是 当pod,变为删除的状态后,会给pod 一个宽限期,让pod 去执行一些清理或者销毁操作
另外还有两个选项,postStart,preStop,这两个是位于lifecycle,属于pod生命周期的两个函数,一个是pod 启动阶段做的事件,另一个是pod 终止时做的事情
1、我们先看一下,如下的 pod 的 yaml 文件:
apiVersion: v1 # api 文档版本 kind: Pod # 资源对象类型,也可以配置为像Deployment、StatefulSet这一类的对象 metadata: # Pod 相关的元数据,用于描述 Pod 的数据 name: nginx-demo # Pod 的名称 namespace: 'default' # 命名空间的配置 spec: # 期望 Pod 按照这里面的描述进行创建 containers: # 对于 Pod 中的容器描述 - name: nginx # 容器的名称 image: nginx:1.7.9 # 指定容器的镜像 imagePullPolicy: IfNotPresent # 镜像拉取策略,指定如果本地有就用本地的,如果没有就拉取远程的 lifecycle: postStart: # 生命周期启动阶段做事情,不一定在窗口的Command之前运行 exec: command: - sh - -c - "echo '<h1> pre stop</h1>' > /usr/share/nginx/html/prestop.html" preStop: exec: command: - sh - -c - "sleep 50;echo 'sleep finished...' >> /usr/share/nginx/html/prestop.html" ports: - name: http # 端口名称 containerPort: 80 # 描述容器内要暴露什么端口 protocol: TCP # 描述该端口是基于哪种协议通信的 restartPolicy: OnFailure # 重启策略,只有失败的情况才会重启
2,根据配置,创建 pod ,可以使用如下命令,而且创建完成后,我们可以使用curl 命令去验证:curl http://10.224.169.140/prestop.html,可以看到postStart 是有效果的
3、当我们创建完成后,当运行正常时,我们再进行删除,因为我们没有定义terminationGracePeriodSeconds 选项,因此默认就是30秒
4、当然我们也可以自定义这一个值 ,如terminationGracePeriodSeconds: 40 到与containers:同级上方一行,再进行观察就可以看到宽限期为40s了,当然有时也可以会有1秒的误差,如41s
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17694477.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!