k8s环境如何调试一启动就挂掉的pod

当K8s中的Pod启动后立即挂起且无法查看日志时,可以通过在Pod启动时不执行原命令,改为执行`sleep3600`保持其存活,然后进入Pod内部手动运行原命令来查看日志和调试。使用containerd环境,通过crictlinspect获取镜像ID和启动命令,修改yaml文件后重新应用,以便从容调试并查看日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 问题描述

k8s中pod一开始运行,马上挂起死掉,每次手忙脚乱的敲好kubeclt log -n XXX ,还来不及看到,pod已经挂了,日志也没看到。

2 解决思路

2.1 pod运行先不执行原来的命令,执行sleep 3600 秒保持pod存活

2.2 找到pod之前运行的命令,进入pod内部直接输入运行命令,显式查看运行日志,找到报错原因。

3 实践

3.1 得到容器运行命令

新版的k8s环境使用containerd,不再使用docker,如何参看容器内的运行命令?docker是通过使用 docker inspect img_id 得到,在containerd环境下的操作思路是一样的,先找到关注的pod在哪个node运行,然后在该node得到image id,再使用crictl inpecti XXXX得到pod启动时候的运行命令

3.1.1 找到pod的运行pod

[root@node1 ingress_down]# kubectl get pod -n com-pre -owide|grep test
test-service-7cbddfccdc-zvtmw 2/2 Running 0 23h 10.244.33.139 node5

3.1.2 转到对应node,使用crictl images,得到pod使用的镜像id:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值