我试图使用pod的生命周期事件。问题是来自preStop
的命令根本没有运行。有没有办法监控它是否已启动?容器的日志是空的。
lifecycle:
preStop:
exec:
command: [ "/bin/sh", "-c", "/clean.sh" ]
答案 0 :(得分:2)
我只想添加preStop
钩子,吊舱可能已终止,无法用于describe
。
查看preStop
错误日志的另一种方法是通过kubectl事件:
kubectl get events | grep FailedPreStopHook
示例:
kubectl get events | grep FailedPreStopHook
5m33s Warning FailedPreStopHook pod/pod-name-59988c4675-79q4p
Exec lifecycle hook ([/bin/kill -s SIGQUIT 1]) for Container "container_name" in Pod "pod-name-59988c4675-79q4p_namespace(556dc3d2-9da4-11ea-bca3-00163e01eb9a)" failed - error:
command '/bin/kill -s SIGQUIT 1' exited with 1: kill: can't kill pid 1: Operation not permitted
答案 1 :(得分:0)
来自https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#debugging-hook-handlers
Hook处理程序的日志未在Pod事件中公开。如果处理程序由于某种原因失败,它会广播一个事件。 [...]对于
的事件的一些示例输出PreStop
,这是FailedPreStopHook
事件。您可以通过运行kubectl describe pod <pod_name>
来查看这些事件。以下是运行此命令[...]
答案 2 :(得分:0)
https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#debugging-hook-handlers
Hook处理程序的日志未在Pod事件中公开。如果处理程序由于某种原因失败,它将广播事件。 [...]对于
的事件的一些示例输出PreStop
,这是FailedPreStopHook
事件。您可以通过运行kubectl describe pod <pod_name>
来查看这些事件。这是运行此命令[...]