zoukankan      html  css  js  c++  java
  • 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"]

     

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

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

    调试hook

    Hook调用的日志没有暴露给Pod的event,所以只能通过describe命令来获取,如果有错误将可以看到FailedPostStartHookFailedPreStopHook这样的event。

  • 相关阅读:
    MongoDB
    Vivado HLS与System Generator:联系与区别
    FPGA的图像处理技术,你知道多少?
    增量与位置PID
    zedboard之GPIO驱动(从FPGA一直到LINUX应用)
    珠峰攀登记录
    Source Insight建工程之Kernel
    zedboard 驱动理解
    研一上学期总结以及规划
    数字图象处理MATLAB学习
  • 原文地址:https://www.cnblogs.com/peteremperor/p/12193294.html
Copyright © 2011-2022 走看看