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