kubernetes 配置示例 - Lifecycle

演示 Lifecycle 的配置

apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo hello from the postStart handler"]
      preStop:
        exec:
          command: ["/usr/sbin/nginx", "-s", "quit"]

postStart

    在容器启动后立即执行一个指定的操作。虽然 postStart 定义的操作是在 docker 容器 ENTRYPOINT 执行之后,但是并不严格保证顺序。也就是说, postStart 启动时, ENTRYPOINT 有可能尚未结束。如果 postStart 执行超时或出错,kubernetes 会在该 pod 的 Events中报出该容器启动失败的错误信息,导致 Pod 也处于失败状态。

preStop

   发生的时机是容器被结束之前。 preStop 操作的执行是同步的。所以它会阻塞当前的容器结束流程,直到这个 Hook 定义操作完成之后,才允许容器被结束。

 

posted @ 2021-12-30 08:35  一剑侵心  阅读(592)  评论(0编辑  收藏  举报