钩子函数能够感知自身生命周期中的事件,并在相应的时刻到来时运行用户指定的程序代码。

kubernetes在主容器的启动之后和停止之前提供了两个钩子函数:

  • post start:容器创建之后执行,如果失败了会重启容器

  • pre stop :容器终止之前执行,执行完成之后容器将成功终止,在其完成之前会阻塞删除容器的操作

钩子处理器支持使用下面三种方式定义动作:

  • Exec命令:在容器内执行一次命令

……lifecycle:postStart: exec:command:- cat- /tmp/healthy
……

TCPSocket:在当前容器尝试访问指定的socket

……      lifecycle:postStart:tcpSocket:port: 8080
……

HTTPGet:在当前容器中向某url发起http请求

……lifecycle:postStart:httpGet:path: / #URI地址port: 80 #端口号host: 192.168.5.3 #主机地址scheme: HTTP #支持的协议,http或者https
……

接下来,以exec方式为例,演示下钩子函数的使用,创建pod-hook-exec.yaml文件,内容如下:

apiVersion: v1
kind: Pod
metadata:name: pod-hook-execnamespace: dev
spec:containers:- name: main-containerimage: nginx:1.17.1ports:- name: nginx-portcontainerPort: 80lifecycle:postStart: exec: # 在容器启动的时候执行一个命令,修改掉nginx的默认首页内容command: ["/bin/sh", "-c", "echo postStart... > /usr/share/nginx/html/index.html"]preStop:exec: # 在容器停止之前停止nginx服务command: ["/usr/sbin/nginx","-s","quit"]
# 创建pod
[root@k8s-master01 ~]# kubectl create -f pod-hook-exec.yaml
pod/pod-hook-exec created
​
# 查看pod
[root@k8s-master01 ~]# kubectl get pods  pod-hook-exec -n dev -o wide
NAME           READY   STATUS     RESTARTS   AGE    IP            NODE
pod-hook-exec  1/1     Running    0          29s    10.244.2.48   node2
​
# 访问pod
[root@k8s-master01 ~]# curl 10.244.2.48
postStart...

Pod详解-生命周期-钩子函数相关推荐

  1. Pod详解-生命周期-概述

    我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程: pod创建过程 运行初始化容器(init container)过程 运行主容器(main container) ...

  2. Pod详解-生命周期-创建和终止

    pod的创建过程 用户通过kubectl或其他api客户端提交需要创建的pod信息给apiServer apiServer开始生成pod对象的信息,并将信息存入etcd,然后返回确认信息至客户端 ap ...

  3. Pod详解-生命周期-容器探测

    容器探测用于检测容器中的应用实例是否正常工作,是保障业务可用性的一种传统机制.如果经过探测,实例的状态不符合预期,那么kubernetes就会把该问题实例" 摘除 ",不承担业务流 ...

  4. 详解Vue八大生命周期钩子函数

    摘要:Vue为生命周期中的每个状态都设置了钩子函数(监听函数) .每当Vue实例处于不同的生命周期时,对应的函数就会被触发调用. 本文分享自华为云社区<一文带你弄懂Vue八大生命周期钩子函数&g ...

  5. 不来看看这些 VUE 的生命周期钩子函数? | 原力计划

    作者 | huangfuyk 责编 | 王晓曼 出品 | CSDN 博客 VUE的生命周期钩子函数:就是指在一个组件从创建到销毁的过程自动执行的函数,包含组件的变化.可以分为:创建.挂载.更新.销毁四 ...

  6. Vue生命周期钩子函数理解与使用场景

    Vue生命周期钩子函数 每个 Vue 实例在被创建时都要经过一系列的初始化过程--例如,需要设置数据监听.编译模板.将实例挂载到 DOM 并在数据变化时更新 DOM 等.同时在这个过程中也会运行一些叫 ...

  7. 史上最全的Vue生命周期钩子函数11个

    什么是生命周期? 生命周期: Vue是一个构造函数,当执行执行这个函数时,相当于初始化vue实例: 在创建实例过程中,需要设置数据监听,编译模板,将实例挂载到DOM上,数据更新能够让DOM也更新,在这 ...

  8. 说一下vue生命周期钩子函数有哪些,分别什么时候触发

    vue生命周期即为一个组件从出生到死亡的一个完整周期,主要包括以下4个阶段:创建,挂载,更新,销毁 创建前:beforeCreate,  创建后:created 挂载前:beforeMount,  挂 ...

  9. vue生命周期钩子函数的正确使用方式

    对于vue生命周期我们还是要先了解清楚,因为不同的生命期用不同的钩子函数,先上图: 遇到的一个问题 在我的项目中,常用的生命周期钩子函数一直都是mounted,对于大部分情况,都是屡试不爽.捷报频传~ ...

最新文章

  1. SparkSQL之DataFrame案例
  2. mysql导入导出数据库文件(转载)
  3. 如何在页面上输出html标签:符号实体
  4. ABAP web service运行时的细节调试
  5. java 在已有的so基础上封装jni_[干货]再见,Android JNI 封装
  6. GDAL源码剖析(三)之Swig编译和帮助文档生成
  7. python模拟操作_请用Python如何模拟键盘操作
  8. python下载网络图片_Python下载网络图片方法汇总与实现
  9. html双人可悔棋五子棋源码,MATLAB实现五子棋游戏(双人对战、可悔棋).pdf
  10. java 中文词性标注_pyhanlp 中文词性标注与分词简介
  11. yolov5样本处理方式
  12. 无心剑中译奥登《用情更深者》
  13. 【iOS】—— KVC与KVO
  14. 基于vivado DDS ip核的DDS信号发生器(可调频调相)
  15. c语言|直角杨辉三角
  16. 自己学习c++过程中写下的笔记,只做基础了解使用
  17. Encountered an improper argument.问题解决办法
  18. QT按钮实现鼠标双击事件
  19. 移动购物APP设计与实现
  20. 带你快速了解EDIUS各版本序列号的内容

热门文章

  1. 第 10 章 建造者模式【Builder Pattern】
  2. [完整代码]创建不受数据库限制的报表 VB.Net 版本 -1
  3. vue 2.6 中 slot 的新用法
  4. 【转】【centos】启动网卡报错(Failed to start LSB: Bring up/down networking )解决办法总结...
  5. CSS:基本概念、选择器、伪类伪元素
  6. memcached学习笔记6--浅谈memcached的机制 以及 memcached细节讨论
  7. JavaScript 的性能优化:加载和执行
  8. C++实现另一个猜数字游戏
  9. Windows7 beta1 微软官方下载
  10. golang go 语言在 window下执行命令 获取本地ip