【云原生】Kubernetes之 Pod hook(钩子)

Pod hook介绍

Pod hook(钩子)是由 Kubernetes 管理的 kubelet 发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。可以同时为 Pod 中的所有容器都配置 hook。

Hook 的类型包括两种:

exec:执行一段命令

HTTP:发送 HTTP 请求

示例如下:

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler> /usr/share/message"]
      preStop:
        exec:
          command: ["/usr/sbin/nginx","-s","quit"]

说明:

postStart 在容器创建之后(但并不能保证钩子会在容器 ENTRYPOINT 之前)执行,这时候 Pod 已经被调度到某台 node 上,被某个 kubelet 管理了,这时候 kubelet 会调用 postStart 操作,该操作跟容器的启动命令是在同步执行的,也就是说在 postStart 操作执行完成之前,kubelet 会锁住容器,不让应用程序的进程启动,只有在 postStart 操作完成之后容器的状态才会被设置成为 RUNNING

PreStop 在容器终止之前被同步阻塞调用,常用于在容器结束前优雅的释放资源

如果 postStart 或者 preStop hook 失败,将会终止容器

相关推荐
蓝象_12 分钟前
docker下载配置redis
redis·docker·容器
恋上钢琴的虫2 小时前
openEuler上安装高版本的docker
运维·docker·容器
半梦半醒*3 小时前
k8s——service详解
linux·运维·docker·容器·kubernetes
期待のcode4 小时前
Dockerfile镜像构建
java·docker·容器
悠闲蜗牛�4 小时前
技术融合新纪元:深度学习、大数据与云原生的跨界实践
大数据·深度学习·云原生
徒 花5 小时前
Nginx
运维·nginx·云原生
回忆是昨天里的海5 小时前
k8s部署dashboard ui管理平台
云原生·容器·kubernetes
guygg886 小时前
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
linux·kubernetes·centos
chen_note8 小时前
Kubernetes1.23版本搭建(三台机器)
运维·容器·kubernetes·云计算·kubepi
花落已飘8 小时前
openEuler WSL2容器化开发实战:Docker Desktop集成与应用部署
运维·docker·容器