gpt4 book ai didi

docker - 在 kubernetes 中获取已杀死的 docker 容器的日志

转载 作者:行者123 更新时间:2023-12-02 07:04:45 25 4
gpt4 key购买 nike

代码的简化版本

trap 'rm /tmp/not_done; echo "trap command got executed"; sleep 10' SIGTERM

wait_sigterm() {

touch /tmp/not_done
while [ -f /tmp/not_done ]
do
sleep 60 &
wait $!
done
}

wait_sigterm

如何确保 trap 命令已执行?

一种方法是我可以访问被杀死的容器的日志并检查我的回显消息。

我尝试在 while 循环中获取日志(kubectl -n 命名空间名称日志 pod-name 容器名称),以便我能够选择最后写入的日志,直到容器处于事件状态。

但是回显消息不存在。我的猜测是,一旦我们杀死容器或其他东西,日志就不会被写入。有什么方法可以获取已杀死容器的日志或测试上述场景吗?

最佳答案

方法 1

如果您想从 pod POD_NAME 查看之前终止的容器的日志。您可以使用以下带 -p 标志的命令

kubectl logs POD_NAME -c CONTAINER_NAME -p

您可以使用以下命令获取更多信息,例如选项和标志

kubectl logs --help

方法 2

确定终止消息的另一种方法是在 Pod 对象的 Status 字段中。

kubectl get pod $POD_NAME -o yaml

检查containerStatuses的字段lastState:

status:
conditions:

containerStatuses:
- containerID:
image: registry.access.redhat.com/rhel7:latest
imageID:
lastState: {}

state:
running:

这里有更多详细信息reading-a-termination-message

关于docker - 在 kubernetes 中获取已杀死的 docker 容器的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54808573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com