nginx -s quit; while killall -0 nginx; do sleep 1; done] 在配置
此文讲述如何给容器的声明周期时间添加措置惩罚惩罚器,Kubernetes撑持postStart和preStop事件。Kubernetes在容器启动之后当即发送postStart事件,在容器终止之前当即发送preStop事件。
备注:此文档参考官方文档,并加以本身的理解。如有误导性的内容,请攻讦斧正。
界说 postStart 和 preStop 措置惩罚惩罚器创建一个包罗一个容器的Pod,容器中有postStart和preStop事件。文件名:lifecycle-events.yaml
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: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]在配置文件中,postStart命令写入一条message文件到容器的/usr/share/message目录。preStop命令平滑遏制nginx。如果容器由于故障而终止,这将很有辅佐。
# kubectl apply -f /root/k8s-example/pods/lifecycle-events.yaml确认Pod中的容器正在运行
# kubectl get pod lifecycle-demo NAME READY STATUS RESTARTS AGE lifecycle-demo 1/1 Running 0 26h进入容器的shell
# kubectl exec -it lifecycle-demo -- /bin/bash在shell中确认postStart措置惩罚惩罚器创建的message文件存在
[email protected]:/# cat /usr/share/message Hello from the postStart handler创建容器后,Kubernetes当即发送postStart事件。 但是,不能保证在挪用Container的entrypoint之前先挪用postStart措置惩罚惩罚措施。 postStart措置惩罚惩罚措施相对付Container的代码异步运行,但是Kubernetes对容器的打点会梗阻,直到postStart措置惩罚惩罚措施完成。 在postStart措置惩罚惩罚措施完成之前,容器的状态不会设置为RUNNING。
kubernetes之给容器的生命周期事件添加措置惩罚惩罚器
,温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31145.html