如何识别 pod 重启活动是由 Spring Boot Log 中的 Liveness Probe 触发的?

问题描述

我正在使用 Spring Boot 应用程序。 我已经使用 REST API 端点包含了 http liveness 探针配置。 因此,只要 REST API 不可访问,Kubernetes 就会重启 pod。

问题是,我需要确定是否有任何方式可以区分 Liveness Probe 触发的 pod 重启活动与部署团队完成的手动重启。

Kubernetes 每次重启 Pod 时,Spring Boot 日志中是否包含任何类型的日志消息?

解决方法

如果您描述了 Pod,您应该会看到一条消息 Liveness probe failed 如果活性探测失败。

kubectl describe pod liveness-exec

FirstSeen LastSeen    Count   From            SubobjectPath           Type        Reason      Message
--------- --------    -----   ----            -------------           --------    ------      -------
37s       37s     1   {default-scheduler }                    Normal      Scheduled   Successfully assigned liveness-exec to worker0
36s       36s     1   {kubelet worker0}   spec.containers{liveness}   Normal      Pulling     pulling image "k8s.gcr.io/busybox"
36s       36s     1   {kubelet worker0}   spec.containers{liveness}   Normal      Pulled      Successfully pulled image "k8s.gcr.io/busybox"
36s       36s     1   {kubelet worker0}   spec.containers{liveness}   Normal      Created     Created container with docker id 86849c15382e; Security:[seccomp=unconfined]
36s       36s     1   {kubelet worker0}   spec.containers{liveness}   Normal      Started     Started container with docker id 86849c15382e
2s        2s      1   {kubelet worker0}   spec.containers{liveness}   Warning     Unhealthy   Liveness probe failed: cat: can't open '/tmp/healthy': No such file or directory