KUBERNETES04_下载策略、私有仓库下载、env、command、生命周期容器钩子、资源限制(三)

④. 生命周期容器钩子


①. Kubernetes中为容器提供了两个hook(钩子函数)


②. PostStart:此钩子函数在容器创建后将立刻执行。但是,并不能保证该钩子函数在容器ENTRYPOINT之前执行。该钩子函数没有输入参数


③. PreStop:此钩子函数在容器被terminate(终止)之前执行,例如


通过接口调用删除容器所在Pod


某些管理事件的发生:健康检查失败、资源紧缺等


如果容器已经被关闭或者进入了completed状态,preStop钩子函数的调用将失败。该函数的执行是同步的,即kubernetes将在该函数完成执行之后才删除容器。该钩子函数没有输入参数


④. Kubernetes在容器启动后立刻发送postStart事件,但是并不能确保postStart事件处理程序在容器的EntryPoint之前执行。postStart事件处理程序相对于容器中的进程来说是异步的(同时执行),然而,Kubernetes在管理容器时,将一直等到postStart事件处理程序结束之后,才会将容器的状态标记为Running。


⑤. Kubernetes在决定关闭容器时,立刻发送preStop事件,并且,将一直等到preStop事件处理程序


结束或者Pod的–grace-period超时,才删除容器


⑥. yaml文件如下



apiVersion: v1
kind: Pod
metadata:
  name: lifestyle-test
  namespace: hello
  labels:
    name: lifestyle-test-labels
spec:  # 指定规格信息
  containers:  # 指定要启动一个什么样的容器
  - image: nginx  #指定镜像。默认会启动一个nginx容器
    name: command-test-lifecycle
    lifecycle:
      postStart:
        httpGet:
          host: "11.168.235.192"
          path: "/"
          port: "80"
          scheme: "HTTP"
      preStop:
        httpGet:
          host: "11.168.235.192"
          path: "/"
          port: "80"
          scheme: "HTTP"


KUBERNETES04_下载策略、私有仓库下载、env、command、生命周期容器钩子、资源限制(三)


上一篇:Centos7常用命令[挂载文件系统]


下一篇:PHP5.5面向对象连接mysqli(循环读取数据)