containerd环境下通过的进程PID查询POD的方法

之前我们有记录过一个笔记,是docker环境下通过查看到的进程PID号来查找到拥有该进程的POD,具体可以查看我之前的笔记:https://sulao.cn/post/925.html

近期基本都在将docker环境切换到containerd环境,所以这次根据需求来更新下containerd环境下根据PID查找对应POD的方法。

查找的方法基本和原来没有太大区别,只是有个别步骤会一样,下面我们来一起看看怎么查询。

首先我们还是获取我们要查询的PID号。例如我查询的是我的使用GPU资源的进程

例如我们要查询tf_cnn_benchmarks这个进程

ps -ef | grep tf_cnn_benchmarks
root     12579 16322 99 17:05 pts/0    00:02:14 python3 tf_cnn_benchmarks.py --num_gpus=1 --batch_size=32 --num_batches=1000000

1.通过上述获取到的PID来查询mountinfo获取容器ID

cat /proc/12579/mountinfo | grep "cri-containerd-"

微信截图_20240530170840.png

可以看到上述反馈的容器ID为10eb8ce46d6b62b8b1d48dd44a3311812ea640da8bbab067869bc070efc9e3c7

最后我们可以使用ctr命令来获取容器名字

ctr -n k8s.io c info 10eb8ce46d6b62b8b1d48dd44a3311812ea640da8bbab067869bc070efc9e3c7 | grep pod.name

微信截图_20240530171638.png

2.同样可以和之前一样通过cgroup获取容器ID

cat /proc/12579/cgroup

微信截图_20240530171843.png

最后还是使用ctr命令进行pod名字获取

另外crictl命令查出来的POD和ctr查出来的容器关联的方式我通过以下列子进行展示

crictl ps

微信截图_20240530202126.png

加入我们查询10eb8ce46d6b6 这个ID的POD容器

ctr -n k8s.io task ls | grep 10eb8ce46d6b6
10eb8ce46d6b62b8b1d48dd44a3311812ea640da8bbab067869bc070efc9e3c7    14677    RUNNING

可以看到前面13位是关联的。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/988.html