K8S生命周期---钩子函数(postStart/preStop)

2023-10-31

容器生命周期钩子

容器生命周期钩子(Container Lifecycle Hooks)监听容器生命周期的特定事件,并在事件发生时执行已注册的回调函数。

支持两种钩子:

  • postStart: 容器创建后立即执行,注意由于是异步执行,它无法保证一定在 ENTRYPOINT 之前运行。如果失败,容器会被杀死,并根据 RestartPolicy 决定是 否重启
  • preStop:容器终止前执行,常用于资源清理。执行完成之后容器将成功终止,如果失败,容器同样也会被杀死。在其完成之前 会阻塞删除容器的操作

钩子的回调函数支持三种方式定义动作:

  • exec:在容器内执行命令,如果命令的退出状态码是 0 表示执行成功,否则表示失败
……
  lifecycle:
    postStart:
      exec:
        command:
        - cat
        - /tmp/healthy
……
  • httpGet:向指定 URL 发起 GET 请求,如果返回的 HTTP 状态码在 [200, 400) 之间表示请求成功,否则表示失败
……
  lifecycle:
    postStart:
      httpGet:
        path: /login   # URI地址
        port: 80  # 端口号
        host: 192.168.126.100 # 主机地址
        scheme: HTTP   # 支持的协议,http或https

# http://192.168.126.100:80/login
……
  • TCPSocket:在容器尝试访问指定的socket
……
  lifecycle:
    postStart:
      tcpSocket:
        port: 8080
……

查看具体写法:

[root@k8s-master ~]# kubectl explain pod.spec.containers.lifecycle.postStart
KIND:     Pod
VERSION:  v1
RESOURCE: postStart <Object>

FIELDS:
   exec	<Object>     

   httpGet	<Object>     

   tcpSocket	<Object>     

[root@k8s-master ~]# kubectl explain pod.spec.containers.lifecycle.preStop
KIND:     Pod
VERSION:  v1
RESOURCE: preStop <Object>

FIELDS:
   exec	<Object>
  
   httpGet	<Object>     

   tcpSocket	<Object>        

演示

[root@k8s-master ~]# vim pod-hook-exec.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-hook-exec
  namespace: test
spec:
  containers:
  - name: main-container
    image: nginx:1.17.1
    ports:
    - name: nginx-port
      containerPort: 80
    lifecycle:
      postStart:
        exec:    # 在容器启动的时候执行一个命令,修改nginx默认首页内容
          command: ["/bin/sh","-c","echo postStart... > /usr/share/nginx/html/index.html"]
      preStop:
        exec:    # 在容器停止之前停止nginx服务
          command: ["/usr/sbin/nginx","-s","quit"]

[root@k8s-master ~]# kubectl create -f pod-hook-exec.yaml
pod/pod-hook-exec created
[root@k8s-master ~]# kubectl get pod -n test -o wide
NAME            READY   STATUS    RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
pod-hook-exec   1/1     Running   0          19s   10.244.2.31   k8s-node02   <none>           <none>
[root@k8s-master ~]# curl 10.244.2.31
postStart...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

K8S生命周期---钩子函数(postStart/preStop) 的相关文章

随机推荐

  • 论文阅读:(ECCV 2022)Simple Baseline for Image Restoration

    Simple Baseline for Image Restoration ECCV 2022 2022 08 26 两个月的时间终于把那个材料完成了 今天一看虽然审核完了还有些小问题 老板没有怪我还说他会去搞定这个事 TAT 我要做老板的
  • 如何利用python处理excel

    利用Python处理Excel数据可以帮助我们更高效地进行数据分析和处理 以下是一些常用的Python库和工具 Pandas Pandas是一个用于数据处理和分析的Python库 它提供了丰富的数据结构和函数 可以方便地读取 清洗 转换和分
  • 存储器IP核生成 非对齐读写 vivado

    存储器制作 含非对齐读写 1 创建ROM 和 RAM IP核 参考马德老师lab0PPT 1 新建一个项目ROM 选择芯片 创建 2 搜索memory generator 3 双击 4 设置好后点击OK width写32 另一个写1024
  • eclipse中文注释缩进异常

    最近更新了eclipse 发现格式化代码后 中文的注释缩进出现了问题 如下图 这个问题 我们可以通过更改字体解决 推荐修改生成支持中文的字体 最简单的方法就是更改成与系统一致 依次点击 Window gt Preferences gt Ge
  • Shell中sort命令使用

    一 sort命令工作原理 sort命令将文件的每一行作为比较对象 通过将不同行进行相互比较 从而得到最终结果 比较原则是从首字符开始 向后依次按ASCII码值进行比较 最后将结果按升序输出 比较前的结果 rocrocket rocrocke
  • java :基本递归(阶乘,斐波那契数列,猴子吃桃,迷宫,汉诺塔,八皇后)

    1 求一个非负数的阶乘 package ex import java util public class ex1 public static void main String args Scanner myscanner new Scann
  • Hive3 启动 提示:com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character

    Windows10 系统启动Hive3 提示如下错误信息 com ctc wstx exc WstxParsingException Illegal character entity expansion character code 0x8
  • 7.全志H3-准备焊接

    上面是我的微信和QQ群 欢迎新朋友的加入 20201203 CPU和DDR已到 20201207 板子到了 开始焊接 20201208 下班继续焊接 发现少了一个料 漏买了 赶紧淘宝补一个 现在就把手上的板子拆了个芯片先用着 焊接完成 测试
  • Partition Pruning和Partition-Wise Joins

    Partition Pruning Partition pruning is an essential performance feature for data warehouses In partition pruning the opt
  • Android Bitmap图像处理(1)- 图片压缩

    一直以来Bitmap都是开发中很棘手的问题 这个问题就是传说中的OOM java lang OutofMemoryError 内存溢出 那么Bitmap为何如此丧失 令无数Android开发者所懊恼 一 Bitmap引发OOM的原因 由于每
  • 介绍中国传统节日的网页html,关于中国传统节日介绍的作文

    关于中国传统节日介绍的作文 春节的另一名称叫过 是我国的传统节日之一 小编为大家收集整理的传统节日作文 欢迎感兴趣的小伙伴们前来查阅 中国传统节日介绍的作文 过春节了 孩子的脸上露出了春节特有的快乐 大人们一年的劳累得到了安抚 春节是多么重
  • 【自监督论文阅读 3】DINOv1

    文章目录 一 摘要 二 引言 三 相关工作 3 1 自监督学习 3 2 自训练与知识蒸馏 四 方法 4 1 SSL with Knowledge Distillation 4 2 教师网络 4 3 网络架构 4 4 避免坍塌 五 实验与评估
  • Python软件基本操作

    经过这几天关于Python的分享 下面我们分享一下关于Python的小操作 顺便编写一些小程序供大家一起学习 探讨 一 个税的计算 从网上我们找到了关于税率的内容 我提取了一些重要的部分 下面我们根据这些内容 我们用Python它编写为小程
  • 湍流系数计算器_雷诺数Re计算公式与在线计算器_三贝计算网_23bei.com

    输入雷诺数Re 流速v m s 密度 kg m 3 动力黏性系数 Pa s 特征长度 内径 d mm m 等5个变量中任意4个已知变量 选择输入特征长度的单位 点击计算按钮 可快速求出未知变量 雷诺数是作为判别流体流动状态的准则 计算公式如
  • H5 手机适配

    刘海屏 水滴屏 小黑条适配 兼容ios 安卓 当我们在写h5页面的时候 常常会遇到刘海屏 水滴屏 小黑条等手机 加入以下css 即可以解决适配 padding constant safe area inset top constant sa
  • 码住!IC设计常用工具合集!

    芯片设计过程中 选择和使用适合的工具是非常重要的 芯片设计工具通常分为三类 EDA工具 模拟仿真工具和布局工具 一 EDA工具 EDA工具是芯片设计的核心 它包括原理图绘制 逻辑综合 门级仿真工具和物理版图编辑等 可以帮助设计师设计出电路的
  • 微CLI工具箱-WeToolkit

    当需要将一个Python脚本快速提供给用户使用时 直接提供纯命令行指令给用户 不友好 如果开发可视化的GUI界面 又太废时间 而且无法在Linux服务器上使用 于是就整了这个微CLI工具箱 WeToolkit 解决这个问题 微CLI工具箱
  • TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活

    TCP连接探测中的Keepalive和心跳包 关键字 tcp keepalive 心跳 保活 TCP连接探测中的Keepalive和心跳包 关键字 tcp keepalive 心跳 保活 分类 linux2013 11 29 17 46 3
  • 好用的函数在线绘图工具

    网址https www desmos com calculator 左侧可以填写函数名 左键拖动图形 按住shift键 通过滚轮来对不同轴进行缩放
  • K8S生命周期---钩子函数(postStart/preStop)

    容器生命周期钩子 容器生命周期钩子 Container Lifecycle Hooks 监听容器生命周期的特定事件 并在事件发生时执行已注册的回调函数 支持两种钩子 postStart 容器创建后立即执行 注意由于是异步执行 它无法保证一定