为容器的生命周期事件设置处理函数

    你必须拥有一个 Kubernetes 的集群,同时你的 Kubernetes 集群必须带有 kubectl 命令行工具。 如果你还没有集群,你可以通过 Minikube 构建一 个你自己的集群,或者你可以使用下面任意一个 Kubernetes 工具构建:

    要获知版本信息,请输入 .

    在本练习中,你将创建一个包含一个容器的 Pod,该容器为 postStart 和 preStop 事件提供对应的处理函数。

    在上述配置文件中,你可以看到 postStart 命令在容器的 /usr/share 目录下写入文件 。 命令 preStop 负责优雅地终止 nginx 服务。当因为失效而导致容器终止时,这一处理方式很有用。```

    创建 Pod:

    1. kubectl apply -f https://k8s.io/examples/pods/lifecycle-events.yaml

    验证 Pod 中的容器已经运行:

    1. kubectl exec -it lifecycle-demo -- /bin/bash

    在 shell 中,验证 处理函数创建了 message 文件:

    命令行输出的是 postStart 处理函数所写入的文本

      Kubernetes 在容器创建后立即发送 postStart 事件。然而,postStart 处理函数的调用不保证早于容器的入口点(entrypoint) 的执行。postStart 处理函数与容器的代码是异步执行的,但 Kubernetes 的容器管理逻辑会一直阻塞等待 postStart 处理函数执行完毕。只有 postStart 处理函数执行完毕,容器的状态才会变成 RUNNING。