【云原生】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 失败,将会终止容器

相关推荐
傻傻虎虎1 小时前
【Docker】容器端口暴露+镜像生成实战
java·docker·容器
Don't Look Down2 小时前
Rustdesk server docker-compose 一键搭建教程
运维·docker·容器
2201_761199042 小时前
7.k8s四层代理service
云原生·容器·kubernetes
Sweety丶╮7944 小时前
【Ansible】将文件部署到受管主机知识点
云原生·ansible
清风笑烟语7 小时前
Ubuntu 24.04 搭建k8s 1.33.4
linux·ubuntu·kubernetes
能不能别报错8 小时前
K8s学习笔记(二):Pod
笔记·学习·kubernetes
羑悻的小杀马特10 小时前
Docker 容器化部署核心实战:从镜像仓库管理、容器多参数运行到 Nginx 服务配置与正反向代理原理解析
nginx·docker·容器·镜像仓库
en-route12 小时前
Kubernetes Ingress:使用 Apache APISIX 进行外部流量路由
容器·kubernetes
qsqya12 小时前
ceph/daemon安装部署
ceph·云原生·eureka
m0_7415747521 小时前
k8s的service
云原生·容器·kubernetes