当前位置:首页 > Web开发 > 正文

nginx -s quit; while killall -0 nginx; do sleep 1; done] 在配置

2024-03-31 Web开发

此文讲述如何给容器的声明周期时间添加措置惩罚惩罚器,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