Kubernetes K8S之Pod 生命周期与postStart、preStop事件

1、容器生命周期钩子函数

​ 生命周期钩子函数( lifecycle hook )是编程语言( 如Angular )中常用的生命周期管理的组件,它实现了程序运行周期中的关键时刻的可见性,并赋予用户为此采取某种行动的能力。类似地, 容器生命周期钩子使它能够感知其自身生命周期管理中的事件,并在相应的时刻到来时运行由用户指定的处理程序代码。

Kubernetes 支持 postStart 和 preStop 事件。

postStart:于容器创建完成之后立即运行的钩子处理器( handler ),不过Kubernetes无法确保它一定会于容器中的ENTRYPOINT之前运行

preStop :于容器终止操作之前立即运行的钩子处理器,它以同步的方式调用,因此在其完成之前会阻塞删除容器的操作的调用。

2、实现方式

2.1、Exec

钩子事件触发时直接在当前容器中运行由用户定义的命令

apiVersion: v1
kind: Pod
metadata:
  name: lifecvcle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: ikubernetes/myapp:vl
    lifecycle:
      postStart:
         exec:
           command: ["/bin/sh", "-c","echo 'lifecycle hookshandler' > /usr/share/nginx/html/test.html"]
           #command: [ "/bin/sh", "-c", "curl -k https://x.x.x.x/apis/v1/crash" ]   #向一个接口发请求

2.2、HTTP

在当前容器中向某指定URL 发起HTTP 请求

 containers:
    - name: hadoop
      image: "{{ .Values.image.hadoop.repository }}:{{ .Values.image.hadoop.tag }}"
      imagePullPolicy: {{ .Values.image.hadoop.pullPolicy | quote }}
      lifecycle:
        preStop:
          httpGet:
            port: 8080
            path: shutdown           #这个请求发送到http://<Pod_IP>:8080/shutdown 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值